A production-ready project management application built with a modular monolith architecture.
- Modular Monolith: Organized into clear layers and modules
- Layered Architecture: UI → API → Service → Domain → Data
- TypeScript Strict Mode: Enforced across all packages
- PostgreSQL + Prisma: Type-safe database access
- Turborepo: High-performance build system
- pnpm: Fast, disk-efficient package manager
project-management-app/
├── apps/
│ ├── frontend/ # Frontend application (to be configured)
│ └── backend/ # Backend application (to be configured)
├── packages/
│ ├── shared/ # Shared types and utilities
│ ├── database/ # Prisma schema and database client
│ └── eslint-config/ # Shared ESLint configurations
├── .github/workflows/ # CI/CD pipelines
└── [config files] # Root-level configuration
- Node.js >= 18.0.0
- pnpm >= 8.0.0
pnpm installpnpm devpnpm build# Run linters
pnpm lint
# Format code
pnpm format
# Check formatting
pnpm format:checkpnpm type-checkpnpm testFrontend application (configuration pending)
Backend application (configuration pending)
Shared TypeScript types, utilities, and constants used across the monorepo.
Prisma schema, migrations, and database client.
Shared ESLint configurations for TypeScript and React.
- Pre-commit Hooks: Husky + lint-staged automatically format and lint staged files
- CI Pipeline: GitHub Actions runs on every push and PR
- Type Safety: Strict TypeScript configuration enforced everywhere
- Code Quality: ESLint + Prettier ensure consistent code style
The project uses GitHub Actions for continuous integration:
- Lint and Test: Runs ESLint, type checking, formatting checks, and tests
- Build: Builds all packages and applications
- Triggers: Runs on push to
main/developand on pull requests
pnpm dev- Start development serverspnpm build- Build all packages and appspnpm lint- Lint all packagespnpm test- Run all testspnpm type-check- Type check all packagespnpm format- Format all filespnpm format:check- Check if files are formattedpnpm clean- Clean all build artifacts
- Configure frontend application (Next.js/React)
- Configure backend application (Node.js/Express)
- Set up Prisma schema and migrations
- Implement domain models and business logic
- Add comprehensive test coverage
Private - All rights reserved