To get started with this project, follow the steps below:
Prerequisites
- Ensure you have Node.js installed. You can download it from Node.js official website.
- Install Git from Git official website.
- Typescript installed globally. You can install it by running
npm install -g typescript.
Steps
-
Clone the repository
git clone git@github.com:suman7802/ExpressTemplate.git
-
Navigate to the project directory
cd ExpressTemplate -
Install dependencies
npm install
-
Create .env.local file
Create a
.env.localfile in the root of the project and add the environment variables, using env.example file. -
Run the development server
npm run dev
-
Open the project in your browser
Open your browser and go to
http://localhost:8080to see the project running.
By following these steps, you will have the project up and running on your local machine.
For createing build files run npm run build and for running build files run npm start.
The project is equipped with a docker-compose file for easy deployment and monitoring with Grafana and Prometheus.
To run the project using Docker, follow these steps:
docker-compose up- Custom error class
- Custom error handler
- Logging
- Localization
- Rate limiting
- Slow down
- Multer
- API key emplemantation
- Sending Emails (sendgrid)
- local email templates (handlebars)
- Metrics (Analytics)
- Prometheus (containerized)
- Grafana (containerized)
- Conterization
- Testing
- Authentication (passport.js)
- Authorization
- Grafana Loki
Contributors are welcome! If you'd like to enhance the project further or add new features, please follow these steps:
- Fork the repository.
- Clone your forked repository:
git clone git@github.com:suman7802/ExpressTemplate.git
- Create a new branch:
git checkout -b feature/new-feature
- Make your changes and commit them:
git commit -m "Add new feature" - Push your changes:
git push origin feature/new-feature
- Open a Pull Request on GitHub.
-
If you encounter a bug or want to see something added/changed, please go ahead and Open an issue
-
If you need help with something, feel free to Start a discussion
For any questions or suggestions, feel free to reach out:
- Email: mansu7802@gmail.com
- Website: suman sharma
- LinkedIn: suman sharma
This project is licensed under the MIT License. See the LICENSE file for details.