Full-stack Todo application built with Spring Boot backend and React frontend. This application allows users to manage their tasks efficiently with features like user authentication, task creation, updating, and deletion.
todo-app/
├── backend/ # Spring Boot application
└── frontend/ # React application
- Java 17 or higher
- Node.js 16 or higher
- Maven 3.6 or higher
- Docker and Docker Compose (for containerized deployment)
-
Navigate to the backend directory:
cd backend/app
-
Build the application:
mvn clean install
-
Run the application:
mvn spring-boot:run
The backend server will start at http://localhost:8080
-
Navigate to the frontend directory:
cd frontend
-
Install dependencies:
npm install
-
Start the development server:
npm start
The frontend application will be available at http://localhost:3000
To run the backend tests, navigate to the backend directory and execute:
cd backend/app
mvn test
This will run all unit and integration tests.
The API documentation is available through Swagger UI when the backend is running:
- Swagger UI:
http://localhost:8080/swagger-ui.html
To run the entire application using Docker:
- Make sure Docker and Docker Compose are installed on your system
- From the root directory, build and start the containers:
docker-compose up --build
This will:
- Build and start the backend container
- Build and start the frontend container
- Set up the necessary network connections
The application will be available at:
- Frontend:
http://localhost:3000
- Backend:
http://localhost:8080
- Log in to Docker Hub:
docker login
- Tag the images:
docker tag todo-app YOUR_DOCKERHUB_USERNAME/todo-app:latest
- Push the images to Docker Hub:
docker push YOUR_DOCKERHUB_USERNAME/todo-app:latest
To pull and run the images from Docker Hub:
docker pull YOUR_DOCKERHUB_USERNAME/todo-app:latest
To run
docker run -p 3000:3000 -p 8091-8094:8091-8094 -p 8080:8080 -p 11210:11210 YOUR_DOCKERHUB_USERNAME/todo-app:latest
- User Authentication (Register/Login)
- Create, Read, Update, and Delete Todos
- Mark Todos as Complete/Incomplete
- Responsive Design
This project is licensed under the MIT License - see the LICENSE file for details.