https://github.com/chandanksdeveloper/todo-web-app
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.
https://github.com/chandanksdeveloper/todo-web-app
context-api css css3 curd-operation dao gson html html5 httpservlet java jdbc json mysql mysqlconnector reactjs rest-api servlet session tailwind tomcat-server
Last synced: 12 days ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/chandanksdeveloper/todo-web-app
- Owner: ChandanKSDeveloper
- Created: 2025-06-21T18:42:39.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-06-22T06:28:38.000Z (7 months ago)
- Last Synced: 2025-06-22T07:26:44.912Z (7 months ago)
- 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
- Language: JavaScript
- Homepage:
- Size: 2.59 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
### **Project Overview: Todo Management Web Application**
#### **Core Functionality**
1. **User Authentication**
- Registration with password hashing
- Login/logout with session management
- Password security using PBKDF2 hashing
2. **Todo Operations**
- Create todo items with due dates
- (Implied) CRUD operations for task management
- User-specific todo items (each user sees their own tasks)
3. **API Endpoints**
- `POST /api/auth/register` - User registration
- `POST /api/auth/login` - User login
- `GET /api/auth/logout` - Session termination
- `POST /api/todos` - Create new todo items
#### **Technical Stack**
- **Backend**: Java Servlets
- **Data Handling**:
- GSON for JSON serialization
- Custom TypeAdapter for LocalDate
- **Database**:
- MySQL (JDBC)
- DAO pattern for data access
- **Security**:
- Password hashing
- Session-based authentication
#### **Key Components**
1. **Authentication Controller** (`AuthController`)
- Handles user sessions
- Prevents multiple logins
- Validates credentials
2. **Todo Controller**
- Manages todo operations
- Enforces user ownership
- Handles date serialization
3. **Utility Classes**
- `PasswordUtil`: Secure password handling
- `TimeUtils`: Date conversions
#### **Data Flow**
1. **Frontend** → **JSON API** → **Servlet** → **DAO** → **Database**
2. All responses in JSON format
#### **Notable Features**
- **REST-like API** design
- **Proper separation** of concerns (controllers, DAOs, utils)
- **Secure practices** for authentication
- **Type-safe date handling** with Java 8 Time API