-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathREADME.me
More file actions
99 lines (83 loc) · 2.54 KB
/
Copy pathREADME.me
File metadata and controls
99 lines (83 loc) · 2.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
🚀 Task Tracker API
A clean and scalable Task Management REST API built with Spring Boot, JPA, and MySQL — designed to demonstrate solid backend fundamentals and real-world API design.
✨ Why This Project?
Managing tasks is simple—until it isn’t.
This project focuses on building a robust backend system that handles task lifecycle efficiently, using clean architecture and REST principles. It’s not just CRUD—it’s about structuring things the right way.
⚡ Key Features
📝 Create and manage tasks effortlessly
📊 Filter tasks by status (e.g., Pending, Completed)
🔄 Update task status dynamically
🗑️ Delete tasks
🧱 Clean layered architecture (Controller → Service → Repository)
⚡ Fast and lightweight REST API
🛠️ Tech Stack
Layer Technology
Language Java 17+
Framework Spring Boot
ORM Spring Data JPA (Hibernate)
Database MySQL
Build Tool Maven
Persistence Jakarta Persistence API
🧠 Architecture Overview
This project follows a layered architecture:
Controller → Service → Repository → Database
Controller → Handles HTTP requests
Service → Business logic
Repository → Data access via JPA
Database → MySQL storage
📁 Project Structure
src/
└── main/
├── java/
│ └── com/tasktracker/
│ ├── controller/
│ ├── service/
│ ├── repository/
│ └── model/
└── resources/
└── application.properties
🚀 Getting Started
✅ Prerequisites
Java 17+
Maven
MySQL
🔧 Setup Instructions
# Clone the repository
git clone https://github.com/Adityapal67/TaskTracker.git
# Navigate into project
cd task-tracker
🗄️ Database Configuration
Update your application.properties:
spring.datasource.url=jdbc:mysql://localhost:3306/task_db
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
▶️ Run the Application
mvn spring-boot:run
Server will start at:
http://localhost:8080
🔌 API Endpoints
📌 Create Task
POST /api/tasks
📋 Get All Tasks
GET /api/tasks
🔍 Get Tasks by Status
GET /api/tasks/status/{status}
🔄 Update Task Status
PUT /api/tasks/{id}
❌ Delete Task
DELETE /api/tasks/{id}
🧪 Testing
You can test the API using:
Postman
cURL
Thunder Client (VS Code)
📈 Future Improvements
🔐 Add authentication (JWT-based security)
📅 Add due dates & reminders
📊 Add pagination & sorting
📡 Integrate frontend (React/Angular)
📄 Add Swagger API documentation
🧑💻 Author
Aditya Pal