Skip to content

MeNafi/DevPulse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

34 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿšผ DevPulse API

๐ƒ๐ž๐ฏ๐๐ฎ๐ฅ๐ฌ๐ž ๐€๐๐ˆ โ€“ A modern bug tracking and issue management backend API built with Express.js, TypeScript, and PostgreSQL, hosted on Neon DB. This project follows clean architecture principles and modern backend development practices, featuring secure authentication, role-based access control, scalable project structure, RESTful APIs, database integration, and production-ready code organization.


๐ŸŒ Deployment

Vercel

Live Demo: https://dev-pulse-puce-kappa.vercel.app/


๐Ÿงฉ Tech Stack

This backend application is built using modern technologies to ensure scalability, maintainability, and performance.

Express.js TypeScript PostgreSQL Neon


โœจ Features

This project includes essential backend development concepts and real-world API implementation.

Feature Description
๐Ÿ” Authentication & Authorization Secure user registration, login, and role management
๐Ÿ›ก๏ธ Role-Based Access Control Restrict actions based on Maintainer and Contributor roles
๐Ÿž Issue Management Create, retrieve, filter, update, resolve, and delete issues
๐Ÿ” Query Filtering Filter issues by type, status, and sorting options
๐Ÿ“ฆ RESTful API Structured API endpoints following REST principles
๐Ÿ—„๏ธ PostgreSQL Database Reliable relational database management
โ˜๏ธ Neon DB Cloud-hosted PostgreSQL database
โšก TypeScript Type-safe, scalable, and maintainable codebase
๐Ÿงฉ Modular Architecture Organized and scalable project structure
๐Ÿšจ Global Error Handling Centralized error management system
๐Ÿ“‹ Input Validation Secure and validated request handling
๐Ÿš€ Production Ready Built using industry-standard best practices

๐Ÿš€ Why This Project

This project demonstrates modern backend development practices and serves as a strong foundation for building scalable applications.

Benefit Description
๐Ÿงฑ Clean Architecture Easy to maintain, extend, and scale
๐Ÿ”’ RBAC Authorization sensitive resources and operations
โšก Strict Type Safety Reduces bugs through TypeScript
๐Ÿ“ฆ Modular Structure Better separation of concerns
๐Ÿ—„๏ธ Database Integration Efficient PostgreSQL data management
โ˜๏ธ Cloud Database Hosted using Neon PostgreSQL
๐Ÿš€ Scalable Design Suitable for real-world applications

๐Ÿ” Authentication & Security

This API follows modern authentication and security practices.

Technology Purpose
๐Ÿ”‘ JWT Authentication Secure authentication using signed access tokens
๐Ÿ›ก๏ธ RBAC Middleware Dynamic permission enforcement across routes
๐Ÿ”’ Password Hashing Secure storage of user credentials
๐Ÿšจ Global Error Handling Safe, consistent, and structured API responses

๐Ÿ“Œ API Endpoints

Method Endpoint Description
POST /api/auth/signup Register a new user
POST /api/auth/login Login and receive access token
GET /api/issues Retrieve all issues
GET /api/issues/:id Retrieve a single issue
POST /api/issues Create a new issue
PATCH /api/issues/:id Update an existing issue
DELETE /api/issues/:id Delete an issue
GET /api/issues?sort=newest Sort issues by creation date
GET /api/issues?status=open Filter issues by status
GET /api/issues?type=bug Filter issues by issue type

๐Ÿ“ฆ Production Dependencies

Package Installation
Express.js npm install express
Dotenv npm install dotenv
PostgreSQL npm install pg
JWT npm install jsonwebtoken
Bcrypt npm install bcrypt
HTTP Status Codes npm install http-status-codes

๐Ÿ› ๏ธ Development Dependencies

Package Installation
TypeScript npm install -D typescript
ts-node-dev npm install -D ts-node-dev
tsup npm install -D tsup
Express Types npm install -D @types/express
PostgreSQL Types npm install -D @types/pg
JWT Types npm install -D @types/jsonwebtoken
Bcrypt Types npm install -D @types/bcrypt
Node.js Types npm install -D @types/node

๐Ÿ“ Project Structure

DevPulse/
โ”‚
โ”œโ”€โ”€ src/
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ api/
โ”‚   โ”‚   โ”‚
โ”‚   โ”‚   โ”œโ”€โ”€ controllers/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ auth.controller.ts
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ issue.controller.ts
โ”‚   โ”‚   โ”‚
โ”‚   โ”‚   โ”œโ”€โ”€ routes/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ auth.routes.ts
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ issue.routes.ts
โ”‚   โ”‚   โ”‚
โ”‚   โ”‚   โ””โ”€โ”€ services/
โ”‚   โ”‚       โ”œโ”€โ”€ auth.service.ts
โ”‚   โ”‚       โ””โ”€โ”€ issue.service.ts
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ config/
โ”‚   โ”‚   โ””โ”€โ”€ index.ts
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ db/
โ”‚   โ”‚   โ”œโ”€โ”€ index.ts
โ”‚   โ”‚   โ””โ”€โ”€ schema.ts
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ middleware/
โ”‚   โ”‚   โ”œโ”€โ”€ auth.ts
โ”‚   โ”‚   โ”œโ”€โ”€ globalErrorHandler.ts
โ”‚   โ”‚   โ””โ”€โ”€ logger.ts
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ types/
โ”‚   โ”‚   โ”œโ”€โ”€ express.d.ts
โ”‚   โ”‚   โ”œโ”€โ”€ index.ts
โ”‚   โ”‚   โ””โ”€โ”€ interface.error.ts
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ utils/
โ”‚   โ”‚   โ”œโ”€โ”€ jwt.ts
โ”‚   โ”‚   โ””โ”€โ”€ sendResponse.ts
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ app.ts
โ”‚   โ””โ”€โ”€ server.ts
โ”‚
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ package-lock.json
โ”œโ”€โ”€ tsconfig.json
โ”œโ”€โ”€ tsup.config.ts
โ”œโ”€โ”€ vercel.json
โ””โ”€โ”€ README.md

๐Ÿ› ๏ธ Installation

# Clone Repository
git clone https://github.com/your-username/DevPulse.git

# Navigate to Project Directory
cd DevPulse

# Install Dependencies
npm install

# Start Development Server
npm run dev

๐ŸŒฑ Environment Variables

Create a .env file and configure the following variables:

PORT=5000
DATABASE_URL=your_neon_postgresql_database_url
JWT_SECRET=your_jwt_secret_key

๐ŸŽฏ Goals of This Project

โœ… Learn modern backend development and issue tracking systems

โœ… Build scalable RESTful APIs with filtering and role-based permissions

โœ… Practice enterprise-level TypeScript development

โœ… Work with PostgreSQL and Neon DB

โœ… Implement secure authentication and authorization

โœ… Follow industry-standard backend architecture patterns


๐Ÿ‘จโ€๐Ÿ’ป Author

Developed and maintained by Nafi.

โญ If you find this project useful, consider giving it a star.

About

๐Ÿšผ ๐€ ๐ฆ๐จ๐๐ž๐ซ๐ง ๐›๐ฎ๐  ๐ญ๐ซ๐š๐œ๐ค๐ข๐ง๐  ๐š๐ง๐ ๐ข๐ฌ๐ฌ๐ฎ๐ž ๐ฆ๐š๐ง๐š๐ ๐ž๐ฆ๐ž๐ง๐ญ ๐›๐š๐œ๐ค๐ž๐ง๐ ๐€๐๐ˆ ๐›๐ฎ๐ข๐ฅ๐ญ ๐ฐ๐ข๐ญ๐ก ๐„๐ฑ๐ฉ๐ซ๐ž๐ฌ๐ฌ.๐ฃ๐ฌ, ๐“๐ฒ๐ฉ๐ž๐’๐œ๐ซ๐ข๐ฉ๐ญ, ๐š๐ง๐ ๐๐จ๐ฌ๐ญ๐ ๐ซ๐ž๐’๐๐‹, ๐ก๐จ๐ฌ๐ญ๐ž๐ ๐จ๐ง ๐๐ž๐จ๐ง-๐ƒ๐, ๐Ÿ๐ž๐š๐ญ๐ฎ๐ซ๐ข๐ง๐  ๐‰๐–๐“ ๐š๐ฎ๐ญ๐ก๐ž๐ง๐ญ๐ข๐œ๐š๐ญ๐ข๐จ๐ง, ๐‘๐๐€๐‚, ๐š๐ง๐ ๐š ๐ฌ๐œ๐š๐ฅ๐š๐›๐ฅ๐ž ๐š๐ซ๐œ๐ก๐ข๐ญ๐ž๐œ๐ญ๐ฎ๐ซ๐ž.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors