Watch
1
0
Fork
You've already forked otodo
0
mirror of https://github.com/ralscha/otodo.git synced 2026-10-09 10:18:29 +02:00
Full stack demo application with Ionic and Spring Boot
  • Java 50.4%
  • TypeScript 24.8%
  • HTML 22.6%
  • SCSS 1.7%
  • JavaScript 0.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Ralph Schaer 27dab27a22 upgrade
2026-10-04 10:07:27 +02:00
client upgrade 2026-10-04 10:07:27 +02:00
emails upgrade 2026-09-12 13:47:17 +02:00
server upgrade 2026-10-04 10:07:27 +02:00
.gitignore Initial commit 2019-08-29 14:55:44 +02:00
README.md Add Playwright integration tests for user authentication and functionality 2026-06-20 12:26:39 +02:00
Taskfile.yml Add Playwright integration tests for user authentication and functionality 2026-06-20 12:26:39 +02:00

OTodo

OTodo is a full-stack todo application with an Ionic/Angular PWA client and a Spring Boot backend. The client stores todos locally with Dexie/IndexedDB and syncs them with the backend when online.

Stack

  • Client: Angular 22, Ionic 8, Dexie, RxJS, date-fns
  • Server: Spring Boot 4, Spring Security, jOOQ, Flyway, PostgreSQL
  • Tests: JUnit 5, Testcontainers, GreenMail, Spring Boot test support

Requirements

  • Node.js and npm compatible with Angular 22
  • Java 25 or newer
  • Docker for the local PostgreSQL 18 Alpine container and backend integration tests

Client

cd client
npm install
npm start

The dev server uses proxy.conf.json to forward /be requests to the backend at http://localhost:8080.

Useful client commands:

npm run lint
npm run build
npm run serve-dist

npm run build updates src/environments/environment.prod.ts, collects used Ionicons, builds the production app into client/dist/app, and runs bread-compressor on the output.

Server

Start PostgreSQL:

cd server
docker compose up -d

The default backend configuration uses:

  • JDBC URL: jdbc:postgresql://localhost:5432/otodo
  • Database: otodo
  • User/password: postgres / postgres
  • Server port: 8080

Run the backend:

cd server
.\mvnw.cmd spring-boot:run

Run backend tests:

cd server
.\mvnw.cmd test

Development Notes

  • API routes are served under /be.
  • The client application URL used by backend emails is configured as app.url=http://localhost:8100.
  • Local email delivery expects an SMTP server on localhost:25; tests use GreenMail.
  • jOOQ sources are checked into server/src/main/java/ch/rasc/otodo/db. Regenerate them with the provided generatejooq*.bat scripts when the schema changes.

Verification

Current health checks:

cd client && npm run lint
cd client && npm run build
cd server && .\mvnw.cmd test