{"id":15291959,"url":"https://github.com/edsonwade/todo-system-application","last_synced_at":"2026-01-31T17:02:05.397Z","repository":{"id":255466351,"uuid":"852151834","full_name":"edsonwade/todo-system-application","owner":"edsonwade","description":"This is a robust and scalable TODO application designed to help manage tasks efficiently. With a sleek frontend and a powerful backend, this app is built to enhance productivity.","archived":false,"fork":false,"pushed_at":"2025-02-07T15:58:10.000Z","size":80,"stargazers_count":0,"open_issues_count":6,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-07T19:41:09.652Z","etag":null,"topics":["axios-react","cicd","docker-compose","flyway-migrations","jpa-hibernate","maven","postgresql","spring-boot","tailwindcss","unit-testing"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/edsonwade.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-09-04T10:08:33.000Z","updated_at":"2025-02-07T14:39:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"44c17572-5c50-4bb8-8658-758f53a054e3","html_url":"https://github.com/edsonwade/todo-system-application","commit_stats":null,"previous_names":["edsonwade/todo-system-application"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/edsonwade/todo-system-application","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edsonwade%2Ftodo-system-application","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edsonwade%2Ftodo-system-application/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edsonwade%2Ftodo-system-application/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edsonwade%2Ftodo-system-application/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edsonwade","download_url":"https://codeload.github.com/edsonwade/todo-system-application/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edsonwade%2Ftodo-system-application/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28948356,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T14:26:55.697Z","status":"ssl_error","status_checked_at":"2026-01-31T14:26:52.545Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["axios-react","cicd","docker-compose","flyway-migrations","jpa-hibernate","maven","postgresql","spring-boot","tailwindcss","unit-testing"],"created_at":"2024-09-30T16:15:17.784Z","updated_at":"2026-01-31T17:02:05.381Z","avatar_url":"https://github.com/edsonwade.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TODO Systems Application 🚀\n\nWelcome to the TODO Systems Application! \nThis is a robust and scalable TODO application designed to help you manage your tasks efficiently.\nWith a sleek frontend and a powerful backend, this app is built to enhance your productivity.\n\n## Overview 📚\n\nThe TODO Systems Application is a full-stack project comprising:\n\n- **Backend**: Built with Java, Spring Boot, and PostgreSQL, using Mockito for testing.\n- **Frontend**: Developed with React to offer a modern, interactive user experience.\n\n### Features ✨\n\n- **User Authentication**: Secure login and registration.\n- **Task Management**: Add, update, and delete tasks.\n- **Task Filtering**: Filter tasks by status and priority.\n- **Responsive Design**: Accessible on both desktop and mobile devices.\n\n## Project Structure 🏗️\n\n### Backend\n\n- **Framework**: Spring Boot\n- **Language**: Java\n- **Database**: PostgreSQL\n- **Testing**: Mockito\n- **APIs**: RESTful endpoints for CRUD operations\n\n#### Key Components:\n\n- **Entities**: Define data models like User and Task.\n- **Repositories**: Interface with the PostgreSQL database.\n- **Services**: Handle business logic.\n- **Controllers**: Expose REST endpoints for the frontend.\n- **Configuration**: Manage application settings and security.\n\n### Frontend\n\n- **Framework**: React\n- **Language**: JavaScript/TypeScript\n- **State Management**: Context API or Redux\n- **UI Library**: Material-UI or Bootstrap\n\n#### Key Components:\n\n- **Components**: Reusable UI elements like buttons, forms, and lists.\n- **Pages**: Main views like the Dashboard and Task Manager.\n- **Services**: Handle API requests and state management.\n- **Routing**: Manage navigation between different views.\n\n### CRUD REST API Documentation\n\n### User API\n\n### 1. Create User\n\n| **Operation**    | **Create User**                                                              |\n|------------------|------------------------------------------------------------------------------|\n| **Method**       | POST                                                                         |\n| **URL**          | `/api/users`                                                                 |\n| **Request Body** | `{ \"username\": \"string\", \"password\": \"string\", \"email\": \"string\" }`          |\n| **Response**     | `201 Created`\u003cbr\u003e{ \"id\": \"number\", \"username\": \"string\", \"email\": \"string\" } |\n| **Description**  | Creates a new user in the system.                                            |\n\n### 2. Get User\n\n| **Operation**          | **Get User**                                                            |\n|------------------------|-------------------------------------------------------------------------|\n| **Method**             | GET                                                                     |\n| **URL**                | `/api/users/{id}`                                                       |\n| **Request Parameters** | `id` (path parameter, integer)                                          |\n| **Response**           | `200 OK`\u003cbr\u003e{ \"id\": \"number\", \"username\": \"string\", \"email\": \"string\" } |\n| **Description**        | Retrieves user details by user ID.                                      |\n\n### 3. Update User\n\n| **Operation**          | **Update User**                                                         |\n|------------------------|-------------------------------------------------------------------------|\n| **Method**             | PUT                                                                     |\n| **URL**                | `/api/users/{id}`                                                       |\n| **Request Parameters** | `id` (path parameter, integer)                                          |\n| **Request Body**       | `{ \"username\": \"string\", \"email\": \"string\" }`                           |\n| **Response**           | `200 OK`\u003cbr\u003e{ \"id\": \"number\", \"username\": \"string\", \"email\": \"string\" } |\n| **Description**        | Updates user details by user ID.                                        |\n\n### 4. Delete User\n\n| **Operation**          | **Delete User**                |\n|------------------------|--------------------------------|\n| **Method**             | DELETE                         |\n| **URL**                | `/api/users/{id}`              |\n| **Request Parameters** | `id` (path parameter, integer) |\n| **Response**           | `204 No Content`               |\n| **Description**        | Deletes a user by user ID.     |\n\n## Task API\n\n### 1. Create Task\n\n| **Operation**    | **Create Task**                                                                                                                                |\n|------------------|------------------------------------------------------------------------------------------------------------------------------------------------|\n| **Method**       | POST                                                                                                                                           |\n| **URL**          | `/api/tasks`                                                                                                                                   |\n| **Request Body** | `{ \"title\": \"string\", \"description\": \"string\", \"status\": \"string\", \"priority\": \"string\", \"dueDate\": \"string\" }`                                |\n| **Response**     | `201 Created`\u003cbr\u003e{ \"id\": \"number\", \"title\": \"string\", \"description\": \"string\", \"status\": \"string\", \"priority\": \"string\", \"dueDate\": \"string\" } |\n| **Description**  | Creates a new task in the system.                                                                                                              |\n\n### 2. Get Task\n\n| **Operation**          | **Get Task**                                                                                                                              |\n|------------------------|-------------------------------------------------------------------------------------------------------------------------------------------|\n| **Method**             | GET                                                                                                                                       |\n| **URL**                | `/api/tasks/{id}`                                                                                                                         |\n| **Request Parameters** | `id` (path parameter, integer)                                                                                                            |\n| **Response**           | `200 OK`\u003cbr\u003e{ \"id\": \"number\", \"title\": \"string\", \"description\": \"string\", \"status\": \"string\", \"priority\": \"string\", \"dueDate\": \"string\" } |\n| **Description**        | Retrieves task details by task ID.                                                                                                        |\n\n### 3. Update Task\n\n| **Operation**          | **Update Task**                                                                                                                           |\n|------------------------|-------------------------------------------------------------------------------------------------------------------------------------------|\n| **Method**             | PUT                                                                                                                                       |\n| **URL**                | `/api/tasks/{id}`                                                                                                                         |\n| **Request Parameters** | `id` (path parameter, integer)                                                                                                            |\n| **Request Body**       | `{ \"title\": \"string\", \"description\": \"string\", \"status\": \"string\", \"priority\": \"string\", \"dueDate\": \"string\" }`                           |\n| **Response**           | `200 OK`\u003cbr\u003e{ \"id\": \"number\", \"title\": \"string\", \"description\": \"string\", \"status\": \"string\", \"priority\": \"string\", \"dueDate\": \"string\" } |\n| **Description**        | Updates task details by task ID.                                                                                                          |\n\n### 4. Delete Task\n\n| **Operation**          | **Delete Task**                |\n|------------------------|--------------------------------|\n| **Method**             | DELETE                         |\n| **URL**                | `/api/tasks/{id}`              |\n| **Request Parameters** | `id` (path parameter, integer) |\n| **Response**           | `204 No Content`               |\n| **Description**        | Deletes a task by task ID.     |\n\n\n## Getting Started 🚀\n\n### Prerequisites 🛠️\n\n- Java 17 or later\n- PostgreSQL\n- Node.js and npm (for frontend)\n- Maven (for backend dependency management)\n\n### Backend Setup 🔧\n\n1. **Clone the repository:**\n   ```bash\n   git clone https://github.com/yourusername/todo-systems-app.git\n   cd todo-systems-app/backend\n   ```\n2. **Configure the database:**\n    - Create a PostgreSQL database.\n    - Update src/main/resources/application.properties with your database credentials.\n3. **Build and run the application:**\n   ```bash\n   ./mvnw spring-boot:run\n   ```\n4. **Run tests:**\n   ```bash\n   ./mvnw test\n   ```\n\n### Frontend Setup 🔧\n\n1. **Navigate to the frontend directory:**\n   ```bash\n   cd todo-systems-app/frontend\n   ```\n2. **Install dependencies:**\n   ```bash\n   npm install\n   ```\n3. **Run the development server:**\n   ```bash\n   npm start\n   ```\n\n### Usage 🖥️\n\n1. **Open the application:** in your browser (typically at http://localhost:3000 for the frontend).\n2. **Create an account or log in.**\n3. **Start managing your tasks using the intuitive UI.**\n   \n### Contributing 🤝\n\nI welcome contributions to improve the **TODO Systems Application!** To get started:\n1. **Fork the repository and clone it to your local machine.**\n2. **Create a new branch for your feature or bug fix**\n   ```bash\n   git checkout -b feature/my-new-feature\n   ```\n3. **Make your changes and commit them**\n   ```bash\n    git commit -am 'Add new feature'\n   ```\n4. **Push your changes to your forked repository**\n   ```bash\n    git push origin feature/my-new-feature\n   ```\n5. **Open a Pull Request on GitHub.**\n\n## License 📜\n\nThis project is licensed under the MIT License—see the [LICENSE](LICENSE) file for details.\n\n## Contact 📬\n\nFor any questions or feedback, feel free to reach out:\n- **Email**: [vanilson](mailto:vanilsonmuhongo@gmail.com)\n- **GitHub Issues**: [GitHub Issues](https://github.com/edsonwade/todo-system-application/issues)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedsonwade%2Ftodo-system-application","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedsonwade%2Ftodo-system-application","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedsonwade%2Ftodo-system-application/lists"}