Full-stack CRUD app built with Spring Boot and React. Follow the day-by-day plan and tick off milestones as you complete them.
- Goal: learn full-stack basics by shipping a Task Tracker (backend + frontend).
- Estimated time: 3–6 days (adjust as needed).
- Install tools: Java 21, IntelliJ IDEA, Node.js + npm, Postman/Thunder Client, Git.
- Validation:
java -versionshows 21; IntelliJ opens; Node installed.
- Validation:
- Create Spring Boot project via Spring Initializr with Spring Web, Spring Data JPA, H2, Lombok (using Maven wrapper).
- Validation:
./mvnw spring-boot:runstarts; visitinghttp://localhost:8080shows Whitelabel page.
- Validation:
- Add test endpoint
/api/testreturningHello Task Tracker!.- Validation: GET
/api/testresponds with the string.
- Validation: GET
- Create
Taskentity withid,title,completedfields. - Add
TaskRepository extends JpaRepository<Task, Long>. - Implement
TaskServicefor findAll/save/delete. - Create
TaskControllerwith GET/POST/PUT/DELETE on/api/tasks.- Validation (Postman): list, create, update, delete all work.
- Scaffold React app with Vite (
npm create vite@latest task-tracker-ui --template react). - Build
src/api.jshelpers for CRUD againsthttp://localhost:8080/api/tasks. - Create UI components (
TaskList,TaskItem,AddTaskForm) and wire intoApp.jsx.- Validation: add tasks, toggle completed, delete tasks in UI.
- Enable CORS in Spring Boot allowing
http://localhost:5173. - Expose H2 console (
spring.h2.console.enabled=true, in-memory URL).- Validation: open
http://localhost:8080/h2-consoleand viewTASKtable.
- Validation: open
- Add request validation (e.g.,
@NotBlank title) and a global exception handler.
- Refactor backend package structure (controller/service/repository/model/dto/exception/config).
- Introduce DTOs to separate API models from entities.
- Split repo into
task-tracker-backend/andtask-tracker-frontend/. - Write final README with tech stack, run steps, screenshots (this file can be expanded later).
- Push to GitHub.
- Add search and completed filter.
- Add due date field and sort by date.
- Add pagination (backend + frontend).
- Java: https://adoptium.net
- Spring Boot docs: https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/
- Spring Initializr: https://start.spring.io
- JPA basics: https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.entity-persistence
- REST tutorial (DTOs): https://spring.io/guides/tutorials/rest/
- Back end:
./mvnw testand./mvnw spring-boot:run; hit REST endpoints via Postman. - Front end:
npm run devintask-tracker-ui; check CRUD flows in the browser. - Database: inspect H2 console during development.
- Replace
localhostURLs if you change ports. - Add screenshots of the UI once the frontend is running.