{"id":24689551,"url":"https://github.com/lucasdota/todo_app_backend","last_synced_at":"2026-04-17T15:03:02.861Z","repository":{"id":270038199,"uuid":"909148893","full_name":"Lucasdota/todo_app_backend","owner":"Lucasdota","description":"A secure Todo application with full CRUD functionality built with Java Spring Boot, featuring user authentication via email and password, and JWT-based session management stored in cookies. This application allows users to register, log in, and manage their personal todo lists.","archived":false,"fork":false,"pushed_at":"2025-01-03T20:30:36.000Z","size":62,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-26T18:17:33.899Z","etag":null,"topics":["crud","java","jwt","mysql","spring-boot"],"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/Lucasdota.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}},"created_at":"2024-12-27T21:27:10.000Z","updated_at":"2025-01-11T23:44:24.000Z","dependencies_parsed_at":"2024-12-27T23:36:36.666Z","dependency_job_id":"70dc2748-3d69-4a99-9b1c-4456c369dbbb","html_url":"https://github.com/Lucasdota/todo_app_backend","commit_stats":null,"previous_names":["lucasdota/todo_app_backend"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lucasdota%2Ftodo_app_backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lucasdota%2Ftodo_app_backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lucasdota%2Ftodo_app_backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lucasdota%2Ftodo_app_backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lucasdota","download_url":"https://codeload.github.com/Lucasdota/todo_app_backend/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244885532,"owners_count":20526293,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["crud","java","jwt","mysql","spring-boot"],"created_at":"2025-01-26T18:16:27.482Z","updated_at":"2026-04-17T15:03:02.783Z","avatar_url":"https://github.com/Lucasdota.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Todo Application with Spring Boot\n[![NPM](https://img.shields.io/npm/l/react)](https://github.com/Lucasdota/todo_app_backend/blob/master/LICENSE)\n\nThis is a Todo application built with Java Spring Boot. The application allows users to register, log in using their email and password, and manage their todo items. Authentication is handled using JSON Web Tokens (JWT), which are stored in cookies for secure session management.\n\n## Features\n\n- User registration and login\n- JWT-based authentication\n- Secure cookie storage for JWT\n- CRUD operations for todo items\n- User-specific todo lists\n\n## Technologies Used\n\n- Java 21\n- Spring Boot 2.x\n- Spring Security\n- JWT (JSON Web Tokens)\n- Maven\n\n## Prerequisites\n\n- Java 21 or higher\n- Maven\n- IDE (e.g., IntelliJ IDEA, Eclipse)\n\n## Getting Started\n\n### Clone the Repository\n\n```bash\ngit clone https://github.com/Lucasdota/todo_app_backend.git\ncd todo_app_backend\n```\n\n### Build the Application\nMake sure you have Maven installed. You can build the application using the following command:\n```bash\nmvn clean install\n```\n\n### Create the application.properties file inside the src/main/resources folder\n```bash\nspring.application.name=your_app_name\nspring.datasource.url=jdbc:your_db_url\nspring.datasource.username=your_db_username\nspring.datasource.password=your_db_password\n\nspring.jpa.hibernate.ddl-auto=update\nspring.jpa.show-sql=true\n\njwt.cookie.name=token\njwt.secret=${JWT_SECRET:your_jwt_secret}\n```\n\n### Run the application\nYou can run the application using the following command:\n```bash\nmvn spring-boot:run\n```\nThe application will start on http://localhost:8080\n\n## API Endpoints\n\n### User Registration\n- #### POST: /auth/register\n  - ```javascript\n    { \"email\": \"user@example.com\", \"password\": \"yourpassword\"}\n    ```\n\n### User Login\n- #### POST: /auth/login\n    - ```javascript\n      { \"email\": \"user@example.com\", \"password\": \"yourpassword\"}\n      ```\n\n### User Logout\n- #### POST: /auth/logout\n\n### Create Todo\n  - #### POST: /todo\n      - ```javascript\n        { \"userId\": 1, \"name\": \"task 1\", \"description\": \"do the dishes\"}\n        ```\n### Toggle Todo Done\n  - #### PUT: /todo\n      - ```javascript\n        { \"todoId\": 1 }\n        ```\n### Delete Todo\n  - #### DELETE: /todo\n      - ```javascript\n        { \"todoId\": 1 }\n        ```\n### Get User\n- #### GET: /user\n\n### Delete User\n- #### DELETE: /user\n\n## Authentication \nUpon successful login, a JWT will be issued and stored in a secure cookie. This cookie will be sent with each request to authenticate the user.\n\n## Acknowledgments\n- [Spring Boot Documentation](https://spring.io/projects/spring-boot)\n- [JWT.io](https://jwt.io/)\n- [mySQL](https://www.mysql.com/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucasdota%2Ftodo_app_backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flucasdota%2Ftodo_app_backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucasdota%2Ftodo_app_backend/lists"}