{"id":28929427,"url":"https://github.com/chandanksdeveloper/todo-web-app","last_synced_at":"2026-04-04T08:41:37.515Z","repository":{"id":300521526,"uuid":"1006213948","full_name":"ChandanKSDeveloper/todo-web-app","owner":"ChandanKSDeveloper","description":"A secure Todo web app with user authentication (login/registration) and task management, built with Java Servlets, MySQL, GSON, ReactJs and Tailwind featuring session-based access control and proper password hashing. The API handles JSON data with custom date serialization for todo due dates.","archived":false,"fork":false,"pushed_at":"2025-06-22T06:28:38.000Z","size":2715,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-22T07:26:44.912Z","etag":null,"topics":["context-api","css","css3","curd-operation","dao","gson","html","html5","httpservlet","java","jdbc","json","mysql","mysqlconnector","reactjs","rest-api","servlet","session","tailwind","tomcat-server"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ChandanKSDeveloper.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2025-06-21T18:42:39.000Z","updated_at":"2025-06-22T06:28:42.000Z","dependencies_parsed_at":"2025-06-22T07:37:31.607Z","dependency_job_id":null,"html_url":"https://github.com/ChandanKSDeveloper/todo-web-app","commit_stats":null,"previous_names":["chandanksdeveloper/todo-web-app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ChandanKSDeveloper/todo-web-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChandanKSDeveloper%2Ftodo-web-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChandanKSDeveloper%2Ftodo-web-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChandanKSDeveloper%2Ftodo-web-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChandanKSDeveloper%2Ftodo-web-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ChandanKSDeveloper","download_url":"https://codeload.github.com/ChandanKSDeveloper/todo-web-app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ChandanKSDeveloper%2Ftodo-web-app/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261304770,"owners_count":23138402,"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":["context-api","css","css3","curd-operation","dao","gson","html","html5","httpservlet","java","jdbc","json","mysql","mysqlconnector","reactjs","rest-api","servlet","session","tailwind","tomcat-server"],"created_at":"2025-06-22T14:16:43.197Z","updated_at":"2025-12-30T20:06:45.040Z","avatar_url":"https://github.com/ChandanKSDeveloper.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"### **Project Overview: Todo Management Web Application**\n\n#### **Core Functionality**\n1. **User Authentication**\n   - Registration with password hashing\n   - Login/logout with session management\n   - Password security using PBKDF2 hashing\n\n2. **Todo Operations**\n   - Create todo items with due dates\n   - (Implied) CRUD operations for task management\n   - User-specific todo items (each user sees their own tasks)\n\n3. **API Endpoints**\n   - `POST /api/auth/register` - User registration\n   - `POST /api/auth/login` - User login\n   - `GET /api/auth/logout` - Session termination\n   - `POST /api/todos` - Create new todo items\n\n#### **Technical Stack**\n- **Backend**: Java Servlets\n- **Data Handling**: \n  - GSON for JSON serialization\n  - Custom TypeAdapter for LocalDate\n- **Database**: \n  - MySQL (JDBC)\n  - DAO pattern for data access\n- **Security**:\n  - Password hashing\n  - Session-based authentication\n\n#### **Key Components**\n1. **Authentication Controller** (`AuthController`)\n   - Handles user sessions\n   - Prevents multiple logins\n   - Validates credentials\n\n2. **Todo Controller** \n   - Manages todo operations\n   - Enforces user ownership\n   - Handles date serialization\n\n3. **Utility Classes**\n   - `PasswordUtil`: Secure password handling\n   - `TimeUtils`: Date conversions\n\n#### **Data Flow**\n1. **Frontend** → **JSON API** → **Servlet** → **DAO** → **Database**\n2. All responses in JSON format\n\n#### **Notable Features**\n- **REST-like API** design\n- **Proper separation** of concerns (controllers, DAOs, utils)\n- **Secure practices** for authentication\n- **Type-safe date handling** with Java 8 Time API\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchandanksdeveloper%2Ftodo-web-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchandanksdeveloper%2Ftodo-web-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchandanksdeveloper%2Ftodo-web-app/lists"}