Skip to content

Repository files navigation

🧠 TaskMaster Backend

Welcome to the backend of TaskMaster, a powerful and secure Smart Task Manager built with Spring Boot and PostgreSQL, designed for managing tasks efficiently with role-based access control and insightful analytics.

🚀 Live Demo

Backend: https://smart-task-manager-backend.onrender.com
Frontend: https://taskmaster-frontend.netlify.app

📌 Features

  • 🔐 JWT Authentication (Login / Register)
  • 👥 Role-Based Access Control (Admin / Manager / Employee)
  • 📊 Task Analytics (e.g., status breakdown, task completion trends, user productivity)
  • 🧾 Task CRUD APIs
  • 🗂️ Filter Tasks by User or Date
  • 🌍 CORS Enabled for Frontend Integration
  • 📦 RESTful JSON APIs

🛠️ Technologies Used

TechDescription
Java 17Modern Java version
Spring BootBackend framework
Spring SecurityAuthentication & Authorization
JWTToken-based auth
PostgreSQLRelational database
MavenDependency management
RenderBackend hosting platform

🛠️ Project Structure

src/
├── config/ # JWT Security Configuration and Filters
├── controller/ # REST API Controllers for Auth, Tasks, Analytics
├── dto/ # Data Transfer Objects (LoginRequest, TaskDTO, etc.)
├── entity/ # JPA Entities like User, Role, Task
├── exception/ # Custom Exception Handling (GlobalExceptionHandler, etc.)
├── repository/ # Spring Data JPA Repositories
├── service/ # Service Layer - Business Logic and JWT Service
└── TaskManagerApp.java # Main Spring Boot Application Entry Point

📡 API Endpoints

🔐 Authentication

MethodEndpointDescription
POST/api/auth/registerRegister a new user
POST/api/auth/loginLogin and get JWT token

✅ Task Management (Authenticated Depending on Role)

MethodEndpointDescription
GET/api/tasksGet all tasks
GET/api/tasks/myGet all tasks of logged-In User
POST/api/tasksCreate a new task
PUT/api/tasks/{id}Update a task
PUT/api/tasks/{id}/statusUpdate status of the task
DELETE/api/tasks/{id}Delete a task

📊 Analytics (Admin Only)

MethodEndpointDescription
GET/api/analytics/task-summaryTask analytics
GET/api/analytics/user-performance-summaryUser productivity analytics
GET/api/analytics/due-date-summaryDue Date related analytics
GET/api/analytics/status-summaryTask status analytics

📦 Getting Started (Local Setup)

🔧 Prerequisites

  • Java 17+
  • Spring Boot
  • Maven
  • PostgreSQL

🧪 Clone and Run

git clone https://github.com/ravigupta97/TaskMaster-backend.git
cd TaskMaster-backend

🔐 Configure PostgreSQL

Create a .env file or update your application.properties with your PostgreSQL credentials:

spring.datasource.url=jdbc:postgresql://localhost:5432/<db_name>
spring.datasource.username=your_user
spring.datasource.password=your_password
spring.jpa.hibernate.ddl-auto=update

🚀 Run the App

Use the following commands to build and run the Spring Boot application:

mvn clean install
mvn spring-boot:run

🌍 Deployment

🛠 Hosted on Render

The backend is hosted on Render, providing scalable infrastructure for Spring Boot applications.


🧑‍💻 Author

👤 Ravi Gupta
🔗 GitHub Profile

About

Backend System of TaskMaster, a powerful and secure Smart Task Manager built with Spring Boot and PostgreSQL, designed for managing tasks efficiently with role-based access control and insightful analytics.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages