Skip to content
/ Todo Public

A fullstack Todo management application built with React (frontend) and Spring Boot (backend), using MySQL as the database. The application leverages RESTful APIs with Spring Data JPA for persistence and includes authentication & authorization for secure access.

Notifications You must be signed in to change notification settings

TNDEVIL4U/Todo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

23 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“‹ Fullstack Todo Application (React + Spring Boot + MySQL)

A fullstack Todo management application built with React (frontend) and Spring Boot (backend), using MySQL as the database. The app exposes RESTful APIs with Spring Data JPA and includes JWT authentication & authorization for secure access.


πŸš€ Features

  • πŸ” User registration & login with JWT authentication
  • βœ… Create, read, update, and delete (CRUD) todos
  • πŸ‘₯ Role-based access control (Admin/User)
  • 🌐 RESTful APIs for backend communication
  • 🎨 Responsive React UI for managing todos
  • πŸ’Ύ Persistent storage with MySQL via JPA/Hibernate

πŸ› οΈ Tech Stack

  • Frontend: React, Axios, Bootstrap/Material UI
  • Backend: Spring Boot, Spring Security, JPA/Hibernate
  • Database: MySQL
  • API: RESTful endpoints
  • Auth: JWT-based authentication

πŸ“‚ Project Structure

todo-app/
β”‚
β”œβ”€β”€ backend/                # Spring Boot application
β”‚   β”œβ”€β”€ src/main/java/...   # Controllers, Services, Repositories
β”‚   β”œβ”€β”€ src/main/resources/ # application.properties
β”‚   └── pom.xml             # Maven dependencies
β”‚
β”œβ”€β”€ frontend/               # React application
β”‚   β”œβ”€β”€ src/                # Components, Pages, Services
β”‚   β”œβ”€β”€ public/             # Static assets
β”‚   └── package.json        # NPM dependencies
β”‚
└── database/               # MySQL schema & migration scripts

βš™οΈ Installation & Setup

1️⃣ Backend (Spring Boot)

  1. Navigate to the backend/ folder
  2. Configure application.properties with your MySQL credentials:
    spring.datasource.url=jdbc:mysql://localhost:3306/todo_db
    spring.datasource.username=root
    spring.datasource.password=yourpassword
    spring.jpa.hibernate.ddl-auto=update
    spring.jpa.show-sql=true
    jwt.secret=yourSecretKey
  3. Run the backend:
    mvn spring-boot:run

2️⃣ Frontend (React)

  1. Navigate to the frontend/ folder
  2. Install dependencies:
    npm install
  3. Start the frontend:
    npm start
  4. Access the app at: http://localhost:3000

πŸ”— API Endpoints

Method Endpoint Description
POST /api/auth/register Register new user
POST /api/auth/login Login & get JWT token
GET /api/todos Get all todos (user)
POST /api/todos Create new todo
PUT /api/todos/{id} Update todo by ID
DELETE /api/todos/{id} Delete todo by ID

πŸ”’ Authentication

  • Uses JWT tokens for secure API access
  • Token must be included in the Authorization header:
    Authorization: Bearer <your_token>
    

🀝 Contributing

  1. Fork the repository
  2. Create a new branch (feature/your-feature)
  3. Commit your changes
  4. Push to your branch
  5. Open a Pull Request

πŸ“œ License

This project is licensed under the MIT License.

About

A fullstack Todo management application built with React (frontend) and Spring Boot (backend), using MySQL as the database. The application leverages RESTful APIs with Spring Data JPA for persistence and includes authentication & authorization for secure access.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published