SkillTrack AI is a full-stack AI-powered learning management system that helps users define learning goals, log progress, generate summaries, get coaching advice, and take quizzes — all secured with Keycloak authentication and built with modern technologies.
.
├── backend/ # Spring Boot API
├── frontend/ # React UI (Vite)
├── docker/ # PostgreSQL & Keycloak init scripts
├── keycloak/ # Custom Keycloak theme
├── docker-compose.yml
- Java 21 + Spring Boot 3.4
- Spring Security (OAuth2 Resource Server)
- PostgreSQL (Docker)
- Flyway (Database migrations)
- OpenAI (via
openai-gpt3-java
) - H2 (test profile)
- Maven
- GitHub Actions (CI/CD)
- React 18 + Vite
- React Router
- Keycloak.js + @react-keycloak/web
- Custom hooks (auth, theme, fetch, pagination)
- CSS Variables (dark/light mode)
docker compose up -d
Make sure
.env
file is set with:
POSTGRES_DB=skilltrack
POSTGRES_USER=youruser
POSTGRES_PASSWORD=yourpass
OPENAI_API_KEY=sk-xxxx...
cd backend
./mvnw spring-boot:run
cd frontend
npm install
npm run dev
App runs at: http://localhost:3000
- Realm:
skilltrack
- Backend Client:
skilltrack-client
- Frontend Client:
skilltrack-frontend
- Roles:
user
,admin
- JWT claims:
preferred_username
,email
- Learning goals and progress tracking
- Add/edit/delete learning logs
- GPT-powered summaries
- AI-generated instructions and coaching
- Smart insights: top tags, activity, reminders
- Quiz system: AI-generated quizzes, take, score quizzes
- Light/dark theme with local storage
- Export logs/summaries (JSON/TXT)
- View all users
- Filter and view user logs/summaries
- User-specific insights
- Read-only mode for admins
/api/auth/me
/api/logs
,/api/summaries
,/api/goals
,/api/quizzes
,/api/instructions
/api/admin/...
./mvnw test -Dspring.profiles.active=test
Uses H2 in-memory DB, Flyway disabled for test profile.
MIT © 2025 Soulaimen Choura