This is a Node.js server application using Express and MongoDB. It includes authentication, logging, email handling, and security features.
Ensure you have the following installed before running the project:
- Node.js (v16 or later recommended)
- MongoDB (Make sure MongoDB is running locally or provide a connection string)
cd server npm install
PORT=8000 NODE_ENV=development MONGO_URI=mongodb://localhost:27017/Boiler JWT_SECRET=secert@97397hh83y4h REFRESH_TOKEN_EXPIRY=7d ENCRYPTION_SECRET=12345678901234567890123456789012 EMAIL_USER=your@example.com EMAIL_PASSWORD=kbay rnnm owtl uwzx SMTP_HOST=smtp.gmail.com SMTP_PORT=465
npm start
Project Structure
server/ │── src/ │ ├── config/ # Configuration files │ ├── middleware/ # Express middleware │ ├── models/ # Mongoose models │ ├── routes/ # API routes │ ├── services/ # Business logic and services │ ├── utils/ # Utility functions │ ├── validation/ # Request validation schemas │── app.js # Application entry point │── server.js # Server setup │── package.json # Project dependencies and scripts │── README.md # Project documentation
Dependencies The following dependencies are used in this project:
bcrypt → Secure password hashing cors → Enable Cross-Origin Resource Sharing (CORS) crypto-js → Encryption and decryption utilities dotenv → Load environment variables from .env files express → Web framework for Node.js express-session → Session management helmet → Security headers for Express applications http-status-codes → Standardized HTTP response status codes joi → Request validation jsonwebtoken → JWT-based authentication mongodb & mongoose → MongoDB ORM for managing data morgan → HTTP request logging nodemailer → Sending emails winston & winston-daily-rotate-file → Logging management
Development Dependencies nodemon → Automatically restarts the server when code changes