https://github.com/muhammadranju/modules-ts-template
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.
https://github.com/muhammadranju/modules-ts-template
authentication authorization express mongodb nodejs reastful-api requests ts-none typescript
Last synced: 2 months ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/muhammadranju/modules-ts-template
- Owner: muhammadranju
- Created: 2025-08-07T16:48:25.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-08-09T22:04:47.000Z (11 months ago)
- Last Synced: 2025-08-10T00:09:57.403Z (11 months ago)
- Topics: authentication, authorization, express, mongodb, nodejs, reastful-api, requests, ts-none, typescript
- Language: TypeScript
- Homepage:
- Size: 87.9 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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:**
```bash
git clone https://github.com/yourusername/your-repository.git
cd your-repository
```
2. **Install dependencies:**
Using npm:
```bash
npm install
```
Using yarn:
```bash
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.
```env
# 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@gmail.com
EMAIL_USER=email@gmail.com
EMAIL_PASS=mkqcfjeqloothyax
EMAIL_PORT=587
EMAIL_HOST=smtp.gmail.com
SUPER_ADMIN_EMAIL=admin@gmail.com
SUPER_ADMIN_PASSWORD=12345678
```
4. **Run the project:**
Using npm:
```bash
npm run dev
```
Using yarn:
```bash
yarn run dev
```
### Running the Tests
Explain how to run the automated tests for this system.
```bash
npm test
```
# TS-Template