Skip to content

Latest commit

 

History

History
135 lines (95 loc) · 2.66 KB

README.md

File metadata and controls

135 lines (95 loc) · 2.66 KB

Todo Application

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.

Project Structure

todo-app/
├── backend/    # Spring Boot application
└── frontend/   # React application

Prerequisites

  • Java 17 or higher
  • Node.js 16 or higher
  • Maven 3.6 or higher
  • Docker and Docker Compose (for containerized deployment)

Running the Applications

Backend (Spring Boot)

  1. Navigate to the backend directory:

    cd backend/app
  2. Build the application:

    mvn clean install
  3. Run the application:

    mvn spring-boot:run

The backend server will start at http://localhost:8080

Frontend (React)

  1. Navigate to the frontend directory:

    cd frontend
  2. Install dependencies:

    npm install
  3. Start the development server:

    npm start

The frontend application will be available at http://localhost:3000

Running Tests

Backend Tests

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.

API Documentation

The API documentation is available through Swagger UI when the backend is running:

  • Swagger UI: http://localhost:8080/swagger-ui.html

Docker Deployment

To run the entire application using Docker:

  1. Make sure Docker and Docker Compose are installed on your system
  2. 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

Pushing to Docker Hub

  1. Log in to Docker Hub:
docker login
  1. Tag the images:
docker tag todo-app YOUR_DOCKERHUB_USERNAME/todo-app:latest
  1. 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

Features

  • User Authentication (Register/Login)
  • Create, Read, Update, and Delete Todos
  • Mark Todos as Complete/Incomplete
  • Responsive Design

License

This project is licensed under the MIT License - see the LICENSE file for details.