An enterprise-ready platform facilitating Corporate Social Responsibility (CSR) partnerships, compliance reporting, and donation tracking between companies and Non-Governmental Organisations (NGOs).
This project is organized as a monorepo containing the following components:
apps/backend: NestJS backend powered by Prisma ORM and MySQL. Handles core authentication, user profiles, approvals, analytics, notifications, and financial reporting modules.apps/frontend: Next.js App Router frontend styled with Tailwind CSS. Includes dashboards for admin, company, and NGO users. API data fetching is managed using React Query and is gate-controlled by feature flags.packages/api-contracts: Shared TypeScript package containing the single source of truth for DTOs, interfaces, and enums, ensuring contract parity between frontend client hooks and backend serializers.
- Frontend: Next.js 14, React 18, React Query, Tailwind CSS, Shadcn/UI, Jest, React Testing Library, Storybook.
- Backend: NestJS, TypeScript, Prisma Client, MySQL, Jest, Supertest, Throttler, JwtAuth.
- Shared Package: TypeScript compiler references.
- Node.js (v18+)
- MySQL database instance
- Clone the repository and install dependencies in the respective app directories:
# Build the API contracts first (as backend/frontend depend on it) cd packages/api-contracts npm install npm run build # Set up backend cd ../../apps/backend npm install # Configure your .env file with DATABASE_URL npx prisma generate # Set up frontend cd ../frontend npm install
- Backend:
cd apps/backend && npm run start:dev - Frontend:
cd apps/frontend && npm run dev
Each project contains its own test suites:
- Backend:
cd apps/backend && npm run test - Frontend:
cd apps/frontend && npm run test
├── apps/
│ ├── backend/ # NestJS Server
│ └── frontend/ # Next.js Client
├── packages/
│ └── api-contracts/ # Shared DTOs and Enums
├── tsconfig.json # Main TS references config
└── docker-compose.yml # Docker compose configuration
This project is licensed under the MIT License.