Skip to content

MaximilianRau04/Todo-App

Repository files navigation

This repository contains my submissions for the course Programmentwicklung 2 (3rd semester Software Engineering, University of Stuttgart, 3 ECTS). The goal was to implement a full-stack Todo Planner with a Vue.js frontend, a Spring Boot backend, and MariaDB as the relational database.

Repository Layout

  • api/: Spring Boot backend service.
  • frontend/: Vue 3 + Vite single-page frontend.
  • docker-compose.yml: Helper definition for a local MariaDB instance.

Requirements

Backend

  • Java 17 or later (developed and tested with JDK 21)
  • Maven Wrapper (shipped as ./mvnw) or Maven 3.9+
  • MariaDB 10.6+ running on localhost:3306 (or adjust spring.datasource.* in api/src/main/resources/application.properties)

Frontend

  • Node.js 18 LTS or newer (Vite recommends the current LTS release)

Setup & Run Guide

  1. Clone the repository

    git clone https://github.com/MaximilianRau2004/Todo-App.git
    cd Program-Development-2
  2. Start MariaDB

    • If you already have MariaDB installed, make sure a database named todo_app exists and that the credentials in application.properties match your setup (defaults: user root, password root).
    • Alternatively use the bundled Docker Compose file:
      docker compose up -d database
      This exposes MariaDB on localhost:3306 with the same root/root credentials.
  3. Run the backend

    cd api
    ./mvnw clean verify          # optional but ensures dependencies/tests are ok
    ./mvnw spring-boot:run

    The API becomes available on http://localhost:8080/api/v1.

  4. Run the frontend

    cd frontend
    npm install
    npm run dev

    Vite serves the SPA on http://localhost:5173. If your backend runs on a different host/port, update frontend/src/config.ts (apiBaseUrl).

  5. Build commands (optional)

    • Backend production JAR: cd api && ./mvnw clean package
    • Frontend static build: cd frontend && npm run build

Troubleshooting

  • Database resets: The backend currently uses spring.jpa.hibernate.ddl-auto=create-drop, so the schema is recreated on each run. Switch to update in application.properties if you need persistence across restarts.
  • Ports already in use: Stop other services bound to 8080 or 5173, or change the ports via application.properties (backend) or the npm run dev -- --port <port> flag (frontend).

Developer Contact

Maximilian Rau
maxi.rau2004@gmail.com

About

Small Todo Wep-Application

Resources

License

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors