A fullstack Node.js + HTML/CSS/JS application allowing citizens, municipal agents, and administrators to report and manage urban waste issues efficiently.
- Backend: Node.js, Express.js, MongoDB, MySQL
- Frontend: HTML5, CSS3 (Custom + Variables), Vanilla JS
- Dev Tools: PNPM, Nodemon, Commitizen, dotenv
- Architecture: Domain-Driven Design (DDD)
Fill\_Rouge/
├── backend/
│ ├── app.js # Main Express server entry point
│ └── src/
│ ├── config/ # Environment configuration
│ ├── database/ # MongoDB & MySQL connections
│ ├── middleware/ # Error and 404 handlers
│ ├── routes/ # Express route definitions
│ └── domains/ # Domain-driven feature logic
│ └── <entity>/ # (auth, user, agent, admin, report)
│ ├── controller/
│ ├── dto/
│ ├── entity/
│ ├── mapper/
│ ├── model/
│ ├── schema/
│ └── service/
│
├── frontend/
│ ├── dist/ # Static HTML/CSS/JS (used in prod)
│ └── src/
│ ├── components/ # UI components
│ │ └── ui/buttons/
│ ├── pages/ # HTML views (home, login, report...)
│ ├── styles/ # Global styling
│ │ └── base/ # Reset, typography, variables
│ └── utils/ # Utility JS files
│
├── .env # Environment config (dev)
├── .env.prod # Environment config (prod)
├── .env.example # Template for env variables
├── package.json
└── README.md
-
Clone the repository
git clone https://github.com/<your-username>/Fill_Rouge.git cd Fill_Rouge
-
Install dependencies
pnpm install
-
Setup environment variables
cp .env.example .env
pnpm devFrontend is served from frontend/src (live HTML/CSS/JS source).
pnpm build:frontend
pnpm startFrontend will be copied into frontend/dist and served statically.
Create a .env file at the root with the following content:
NODE_ENV=local
PORT=3000
MONGODB_URI=mongodb://localhost:27017/fil_rouge
MYSQL_HOST=localhost
MYSQL_USER=root
MYSQL_PASSWORD=
MYSQL_DATABASE=fil_rouge
JWT_SECRET=your_super_secret| Command | Description |
|---|---|
pnpm dev |
Run Express server with nodemon |
pnpm start |
Run production server |
pnpm build:frontend |
Build frontend to /dist |
pnpm commit |
Use Commitizen to make conventional commits |
This project uses Commitizen for standard commit messages:
pnpm commitYou’ll be guided through prompts to ensure semantic commit format.
- Julie Belrose – Dev (
julieanani) - Ibrahim BOUKLIKHA – Dev (
ibrahim-boukligha) - Cédric PAULIN – Dev (
cedric-paulin)
