A full-stack lost-item reporting portal with:
- Frontend: React + TypeScript + Vite + MUI
- Backend: Spring Boot (Java 21) + JPA
- Database: PostgreSQL
- Orchestration: Docker Compose
- View all lost item reports
- Create a new report
- Edit an existing report
- Delete a report
lost_item_portal/
├── backend/ # Spring Boot REST API
├── frontend/ # React app
├── docker-compose.yml
├── .env.example
└── README.md
Copy .env.example to .env and adjust values as needed:
DB_USER=postgres
DB_PASS=your_password_here
DB_NAME=lost_items
DB_PORT=5432
VITE_API_URL=http://localhost:8080/api
APP_CORS_ALLOWED_ORIGINS=http://localhost:3000,http://127.0.0.1:3000If port
5432is already used on your machine, setDB_PORTto another port (for example5433).
docker compose up --build -dAccess:
- Frontend:
http://localhost:3000 - Backend API:
http://localhost:8080/api/lost-items - PostgreSQL:
localhost:${DB_PORT}
Stop:
docker compose downcd backend
sh ./mvnw spring-boot:runcd frontend
npm install
npm run devcd frontend
npm run lint
npm run buildcd backend
sh ./mvnw test