A full-stack, TypeScript-based monorepo using npm workspaces. Commit Conquer features a modular Express backend, a primary storefront frontend application, shared e-commerce modules, and an automated evaluation pipeline.
- Overview
- Project Structure
- Tech Stack
- Prerequisites
- Getting Started & Local Development
- Testing
- Automated Pipeline (CI/CD)
- Contributing
Commit Conquer leverages npm workspaces to organize its codebase efficiently:
apps/storefront/: This is the primary frontend website for the project. It is built with Vite and React.packages/server/: Contains the Express API backend.packages/modules/&packages/core/: Houses the shared business logic across the monorepo (e-commerce domains like cart, orders, products, auth, etc.).tests/&eval/: Houses the automated testing and CI evaluation scripts.
commit-conquer/
├── apps/
│ ├── storefront/ # Main user-facing application (Vite + React)
│ └── admin/ # Admin dashboard configuration
├── packages/
│ ├── core/ # Core shared utilities, event bus, and types
│ ├── modules/ # Modular business logic (auth, cart, orders, products, etc.)
│ └── server/ # Express API backend server
├── tests/ # Jest unit & integration test suites
├── eval/ # Scripts for automated PR evaluation (k6, lighthouse)
├── .github/ # GitHub Actions CI/CD workflows
├── infra/ # Infrastructure configuration
├── package.json # Root workspace config & shared dependencies
└── tsconfig.json # Shared TypeScript configuration
| Layer | Technology |
|---|---|
| Language | TypeScript |
| Runtime | Node.js |
| Backend | Express v5, Helmet, Morgan, CORS |
| Frontend | Vite, React, React Router, TanStack Query |
| Monorepo | npm workspaces, concurrently |
| Testing | Jest, Supertest, ts-jest |
| CI/CD | GitHub Actions, k6 (Load Testing), Lighthouse CI |
- Node.js v20 or later
- npm v8 or later
Starting the project is streamlined into a single command that boots both the frontend and backend simultaneously.
Clone the repository and run npm install at the root. This will install and link dependencies for all workspaces (apps/, packages/, tests/).
git clone https://github.com/Commit-Conquer/commit-conquer.git
cd commit-conquer
npm installThe primary website is located in apps/storefront. It comes with a unified start script that runs both the Vite frontend server and the Express backend server concurrently!
cd apps/storefront
npm start(This command runs concurrently to execute the Vite dev server for the frontend and nodemon for the Express backend at the same time).
If you only want to start the backend standalone, you can do so from the root:
npm run start:serverTests are housed in a completely separate workspace (tests/) to isolate test dependencies from production code.
To run the full suite of unit and integration tests:
npm test --prefix testsNote: The integration tests spin up an in-memory instance of the Express server to test routes end-to-end without needing a running server process.
We enforce strict quality control using GitHub Actions. When you raise a Pull Request, the .github/workflows/evaluate.yml pipeline will trigger automatically.
The pipeline acts as an automated judge that scores your code by:
- Running Tests: Executes the Jest suite (
tests/) to ensure no regressions. - Performance Audits: Runs a Lighthouse audit against the
storefrontto check page speed and accessibility. - Load Testing: Runs k6 against the backend to ensure it handles high traffic.
- Bundle Check: Checks the frontend bundle sizes.
Once finished, a bot will automatically post a comment on your PR with your detailed evaluation score.
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Commit your changes:
git commit -m "feat: add your feature" - Push to your branch:
git push origin feature/your-feature - Open a Pull Request and wait for the evaluation bot to score your code.
This project does not currently specify a license. Please contact the maintainers for usage permissions.