Skip to content

This is a template project for backend development using Typescript, Node.js, Express, Mongoose, Bcrypt, JWT, NodeMailer, Multer, ESLint, and Prettier. The aim is to reduce setup time for new backend projects.

Notifications You must be signed in to change notification settings

muhammadranju/modules-ts-template

Repository files navigation

Project Name

This is a template project for backend development using Typescript, Node.js, Express, Mongoose, Bcrypt, JWT, NodeMailer, Multer, ESLint, and Prettier. The aim is to reduce setup time for new backend projects.

Features

  • Authentication API: Complete authentication system using JWT for secure token-based authentication and bcrypt for password hashing.
  • File Upload: Implemented using Multer with efficient file handling and short-term storage.
  • Data Validation: Robust data validation using Zod and Mongoose schemas.
  • Code Quality: Ensured code readability and quality with ESLint and Prettier.
  • Email Service: Sending emails through NodeMailer.
  • File Handling: Efficient file deletion using fs.unlink.
  • Environment Configuration: Easy configuration using a .env file.
  • Logging: Logging with Winston and file rotation using DailyRotateFile.
  • API Request Logging: Logging API requests using Morgan.

Tech Stack

  • Typescript
  • Node.js
  • Express
  • Mongoose
  • Bcrypt
  • JWT
  • NodeMailer
  • Multer
  • ESLint
  • Prettier
  • Winston
  • Daily-winston-rotate-file
  • Morgen
  • Socket

Getting Started

Follow these steps to set up and run the project locally.

Prerequisites

Ensure you have the following installed:

  • Node.js
  • npm or yarn

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/your-repository.git
    cd your-repository
  2. Install dependencies:

    Using npm:

    npm install

    Using yarn:

    yarn install
  3. Create a .env file:

    In the root directory of the project, create a .env file and add the following variables. Adjust the values according to your setup.

    # Basic
    NODE_ENV=development
    DATABASE_URL=mongodb://127.0.0.1:27017/project_name
    IP_ADDRESS=10.10.7.101
    PORT=5000
    #Bcrypt
    BCRYPT_SALT_ROUNDS=12
    #JWT
    JWT_SECRET=jwt_secret
    #Email
    EMAIL_FROM=[email protected]
    EMAIL_USER=[email protected]
    EMAIL_PASS=mkqcfjeqloothyax
    EMAIL_PORT=587
    EMAIL_HOST=smtp.gmail.com
    SUPER_ADMIN_EMAIL=[email protected]
    SUPER_ADMIN_PASSWORD=12345678
  4. Run the project:

    Using npm:

    npm run dev

    Using yarn:

    yarn run dev

Running the Tests

Explain how to run the automated tests for this system.

npm test

TS-Template

About

This is a template project for backend development using Typescript, Node.js, Express, Mongoose, Bcrypt, JWT, NodeMailer, Multer, ESLint, and Prettier. The aim is to reduce setup time for new backend projects.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published