Skip to content

adelekeemmanuel/Achievo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Achievo - Task Management API

A Spring Boot REST API for managing tasks and task lists.

Features

  • Create, read, update, and delete task lists
  • Create, read, update, and delete tasks within lists
  • Task priorities (HIGH, MEDIUM, LOW)
  • Task status tracking (OPEN, CLOSED)
  • Progress calculation for task lists
  • PostgreSQL database integration
  • RESTful API design
  • OpenAPI/Swagger documentation

Tech Stack

  • Java 24
  • Spring Boot 4.0.2
  • Spring Data JPA
  • PostgreSQL
  • Maven
  • Lombok

Prerequisites

  • Java 17 or higher
  • Maven 3.6+
  • PostgreSQL database (or Supabase account)

Setup

1. Clone the repository

git clone https://github.com/YOUR-USERNAME/Achievo.git
cd Achievo

2. Configure database

Create a .env file in the project root:

DB_URL=jdbc:postgresql://your-host:5432/your-database
DB_USERNAME=your-username
DB_PASSWORD=your-password

Or set environment variables in your IDE/terminal.

3. Run the application

mvn spring-boot:run

The API will be available at http://localhost:8080

API Endpoints

Task Lists

  • GET /api/task-lists - Get all task lists
  • POST /api/task-lists - Create a new task list
  • GET /api/task-lists/{id} - Get a specific task list
  • PUT /api/task-lists/{id} - Update a task list
  • DELETE /api/task-lists/{id} - Delete a task list

Tasks

  • GET /api/task-lists/{listId}/tasks - Get all tasks in a list
  • POST /api/task-lists/{listId}/tasks - Create a new task
  • GET /api/task-lists/{listId}/tasks/{taskId} - Get a specific task
  • PUT /api/task-lists/{listId}/tasks/{taskId} - Update a task
  • DELETE /api/task-lists/{listId}/tasks/{taskId} - Delete a task

API Documentation

Once the application is running, visit:

  • Swagger UI: http://localhost:8080/swagger-ui.html
  • OpenAPI JSON: http://localhost:8080/v3/api-docs

Environment Variables

Variable Description Example
DB_URL Database connection URL jdbc:postgresql://localhost:5432/achievo
DB_USERNAME Database username postgres
DB_PASSWORD Database password your-password

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

About

Task Management API - Spring Boot application for managing tasks and task lists

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages