{"id":23838317,"url":"https://github.com/inoles/springtasker","last_synced_at":"2026-04-17T14:37:52.293Z","repository":{"id":269348858,"uuid":"907089576","full_name":"iNoles/SpringTasker","owner":"iNoles","description":"task management app built with Spring Boot, Kotlin, and H2 database, featuring CRUD operations","archived":false,"fork":false,"pushed_at":"2025-01-25T01:35:23.000Z","size":88,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-25T02:24:09.501Z","etag":null,"topics":["backend","crud","h2-database","jwt","kotlin","spring-boot","spring-security","spring-security-jwt","sprintboot","task-management","web-development"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iNoles.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-22T19:25:34.000Z","updated_at":"2025-01-25T01:35:27.000Z","dependencies_parsed_at":"2025-01-10T05:32:09.031Z","dependency_job_id":null,"html_url":"https://github.com/iNoles/SpringTasker","commit_stats":null,"previous_names":["inoles/springtasker"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iNoles%2FSpringTasker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iNoles%2FSpringTasker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iNoles%2FSpringTasker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iNoles%2FSpringTasker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iNoles","download_url":"https://codeload.github.com/iNoles/SpringTasker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240124525,"owners_count":19751513,"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":["backend","crud","h2-database","jwt","kotlin","spring-boot","spring-security","spring-security-jwt","sprintboot","task-management","web-development"],"created_at":"2025-01-02T16:54:41.476Z","updated_at":"2026-04-17T14:37:47.232Z","avatar_url":"https://github.com/iNoles.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SpringTasker - Spring Boot \u0026 Kotlin 🚀\n\nSpringTasker is a task management application built using Spring Boot and Kotlin. It supports both session-based authentication with CSRF protection for form-based logins and JWT-based authentication for API access. The application leverages H2 Database for persistence and follows clean, modular design principles for efficient task management.\n\n## Features 🌟\n\n### User Authentication \u0026 Authorization\n\n- Session-based login/logout for UI users\n- JWT-based authentication for API clients\n\n### Managing Tasks\n\n- Create, edit, and delete tasks\n- Mark tasks as completed\n- Set priority levels (Low, Medium, High)\n\n### Security Enhancements\n\n- CSRF protection for form logins\n- Stateless JWT-based authentication for APIs\n\n## Technologies Used 🛠️\n\n- **Kotlin**: Primary language\n- **Spring Boot**: Framework for rapid development\n- **Spring Security**: Authentication and authorization\n- **JWT (JSON Web Token)**: Secure API authentication\n- **H2 Database**: Lightweight, embedded database\n- **Thymeleaf**: Server-side template engine for UI\n- **Gradle**: Build tool for dependency management\n\n## Authentication Methods 🔐\n\n| Endpoint              | Authentication Method              | Notes                 |\n| --------------------- | ---------------------------------- | --------------------- |\n| `/login`, `/register` | Session-based with CSRF protection | For UI users          |\n| `/api/auth/*`         | JWT-based Authentication           | For API clients       |\n| `/logout`             | Invalidates session and JWT        | Supports both methods |\n\n## Getting Started 💡\n\n### Prerequisites\n\n- JDK 17 or higher\n- Gradle installed\n- Your favorite IDE (IntelliJ IDEA recommended)\n\n### Running the Application\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/iNoles/SpringTasker.git\n   cd SpringTasker\n   ```\n2. Build the project:\n   ```bash\n   ./gradlew build\n   ```\n3. Run the application:\n\n```bash\n  ./gradlew bootRun\n```\n\n4. Open your browser and navigate to:\n   ```arduino\n   http://localhost:8080\n   ```\n\n## API Endpoints 📡\n\n### Authentication\n\n| Method | Endpoint             | Description                 |\n| ------ | -------------------- | --------------------------- |\n| POST   | `/api/auth/login`    | Login and receive JWT token |\n| POST   | `/api/auth/register` | Register a new user         |\n| POST   | `/api/auth/logout`   | Invalidate JWT token        |\n\n### Task Management\n\n| Method | Endpoint          | Description                   |\n| ------ | ----------------- | ----------------------------- |\n| GET    | `/api/tasks/`     | Get all tasks by current user |\n| POST   | `/api/tasks/add`  | Add a new task                |\n| PUT    | `/api/tasks/{id}` | Update a task                 |\n| DELETE | `/api/tasks/{id}` | Delete a task                 |\n\n## Roadmap 🛤️\n\nHere’s what’s coming next:\n\n1. Deployment\n   - Deploy the project on a public site for easy access\n2. Database Integration\n   - Upgrade from H2 to a production-grade database (PostgreSQL or MySQL)\n\n## Contributions 🤝\n\nThis project is a work in progress, and contributions are welcome! Feel free to:\n\n- Submit issues for bugs or feature suggestions\n- Open pull requests to contribute directly\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finoles%2Fspringtasker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finoles%2Fspringtasker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finoles%2Fspringtasker/lists"}