Skip to content

Repository files navigation

Express template

Getting started

To get started with this project, follow the steps below:

Prerequisites

Steps

  1. Clone the repository

    git clone git@github.com:suman7802/ExpressTemplate.git
  2. Navigate to the project directory

    cd ExpressTemplate
  3. Install dependencies

    npm install
  4. Create .env.local file

    Create a .env.local file in the root of the project and add the environment variables, using env.example file.

  5. Run the development server

    npm run dev
  6. Open the project in your browser

    Open your browser and go to http://localhost:8080 to 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.

Documentation

Postman Collection

Docker compose

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

Features

  • 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

Features to be added

  • Testing
  • Authentication (passport.js)
  • Authorization
  • Grafana Loki

Contributing

Contributors are welcome! If you'd like to enhance the project further or add new features, please follow these steps:

  1. Fork the repository.
  2. Clone your forked repository:
     git clone git@github.com:suman7802/ExpressTemplate.git
  3. Create a new branch:
    git checkout -b feature/new-feature
  4. Make your changes and commit them:
    git commit -m "Add new feature"
  5. Push your changes:
    git push origin feature/new-feature
  6. 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

Contact

For any questions or suggestions, feel free to reach out:

License

This project is licensed under the MIT License. See the LICENSE file for details.