Backend server for Trosc, the student club at facility of computer science and informatics @ suez canal university, powering authentication, course streaming, events, and more.
This project is the backend system for Trosc, a student community website.
It handles user authentication, course & track management, event scheduling, announcements, and admin dashboards — all secured and scalable.
| Category | Technologies |
|---|---|
| Runtime | Node.js (Express.js) |
| Database | MongoDB (Mongoose ODM) |
| Security | Helmet, Rate Limiting, XSS-Clean, HPP, Mongo Sanitize |
| Validation | Joi |
| Emailing | Nodemailer |
| File Uploads | Multer + Cloudinary |
| Auth | JWT (JSON Web Token) |
| Linting & Formatting | ESLint + Prettier |
| Environment | dotenv |
src/
├── app.js
├── server.js
├── controllers/
├── models/
├── routes/
├── services/
├── utils/
├── middlewares/
└── config/
git clone https://github.com/basem3sam/trosc-backend.git
cd trosc-backendnpm installCreate a .env file in the root directory:
NODE_ENV=development
PORT=5000
MODE=development
DATABASE_URL=mongodb+srv://<username>:<password>@cluster.mongodb.net/trosc
JWT_SECRET=supersecretkey
JWT_EXPIRES_IN=30d
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
[email protected]
EMAIL_PASS=your_app_password
CLOUDINARY_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
CORS_ORIGIN=http://localhost:3000(Don’t forget to replace credentials.)
npm start| Script | Description |
|---|---|
npm start |
Start server in dev mode with nodemon |
npm start:prod |
Start server in production |
npm run lint |
Run ESLint check |
npm run debug |
Run in debug mode |
- Helmet for HTTP header protection
- Rate limiting to prevent brute-force
- Sanitization against NoSQL injection & XSS
- Secure JWT-based authentication
Auth— register, login, forgot passwordUsers— manage profilesTracks— stream courses, rate & commentEvents— schedule and manage club eventsAdmin Dashboard— stats and content control
Basem Esam Omar
Backend Engineer — Node.js | MongoDB | Express.js
GitHub Profile
LinkedIN Profile
This project is licensed under the ISC License — feel free to use and improve it for educational purposes.