A full-stack starter built with Vue 3 + Vite + TypeScript and Spring Boot 3 + JPA + Security.
- Login authentication
- JWT-based authorization
- RBAC permission model
- User, role, and permission management APIs
- Frontend route guards and permission-aware navigation
frontend: Vue + Vite applicationbackend: Spring Boot 3 service.tasks: task notes
- Admin:
admin / admin123 - Auditor:
auditor / auditor123
cd backend
mvn spring-boot:runThe default profile is local, which uses in-memory H2 for quick startup.
To run with MySQL:
cd backend
mvn spring-boot:run -Dspring-boot.run.profiles=mysqlRequired environment variables for MySQL mode:
MYSQL_URLMYSQL_USERNAMEMYSQL_PASSWORDAPP_JWT_SECRET
cd frontend
npm install
npm run devDefault API base URL:
http://localhost:8080/api
POST /api/auth/loginGET /api/auth/meGET /api/admin/usersPOST /api/admin/usersPUT /api/admin/users/{id}DELETE /api/admin/users/{id}GET /api/admin/rolesPOST /api/admin/rolesPUT /api/admin/roles/{id}DELETE /api/admin/roles/{id}GET /api/admin/permissionsPOST /api/admin/permissionsPUT /api/admin/permissions/{id}DELETE /api/admin/permissions/{id}
The project is now a workable foundation for:
- Switching from H2 to real MySQL tables
- Adding richer CRUD flows and assignment flows
- Introducing audit logs and stronger error handling
- Expanding backend, frontend, and end-to-end tests