AI-assisted exam preparation platform with timed exams, spaced repetition flashcards and AI-generated quizzes from PDFs.
- 📝 Timed exams and mock tests
- 🛒 Course store with stripe integration
- 🧠 SM-2 spaced repetition flashcards
- 🤖 AI-generated quizzes from PDFs (RAG)
- 🔐 JWT + Google OAuth2 authentication
- 📚 Subjects → Units → Questions hierarchy
- 📦 Dockerized full stack
- 📱 Responsive UI
- ⚡ Spring Boot + React + Tailwind
---
🔗 https://akademia.diegobarrioh.dev
- Java 21
- Spring Boot 3.3
- Spring Security + JWT
- PostgreSQL 16
- Apache PDFBox
- OpenAI API
- React 18
- Vite
- Tailwind CSS
- Flowbite React
- Docker Compose
- Nginx
- PostgreSQL
docker compose up --build| Service | URL |
|---|---|
| Frontend | http://localhost:5173 |
| API | http://localhost:8080 |
| Postgres | localhost:5432 |
The docker-compose.yml uses an external Docker network called cluster_network.
Create it before running the stack:
docker network create cluster_networkThe backend follows a Hexagonal Architecture (Ports & Adapters) approach.
com.akdemya
├── adapter
│ ├── inbound/web
│ ├── infrastructure
│ └── outbound/persistence
├── application/service
├── domain
│ ├── model
│ └── port
└── Application.java
- JWT stateless authentication
- Google OAuth2 login
- BCrypt password hashing
- Role-based access control
- Admin-only AI endpoints
Akadem.ia supports AI-assisted quiz generation from PDF documents:
- PDF upload
- Text extraction with Apache PDFBox
- Semantic chunking
- OpenAI embeddings
- GPT-4o-mini question generation
- Draft approval workflow
Built-in flashcards system with:
- SM-2 spaced repetition
- AGAIN / HARD / GOOD / EASY grading
- Study queues
- Import/export
- Review history
- Daily study limits
JWT_SECRET=
GROQ_API_KEY=
OPENROUTER_API_KEY=
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
FRONTEND_URL=
STRIPE_SECRET_KEY=sk_test_...
STRIPE_WEBHOOK_SECRET=whsec_...
RESEND_API_KEY=re_...
RESEND_FROM_EMAIL=
PRODUCTS_STORAGE_PATH=docker compose -f dist/docker-compose-prod.yaml up -d- pgvector integration
- Async PDF processing
- Advanced analytics
- Multiplayer study sessions
- Native mobile app
- AI study assistant
Akadem.ia es un proyecto open source mantenido en mi tiempo libre. Si te resulta útil y quieres ayudar a que siga creciendo:
- ⭐ Dale una estrella al repo — es gratis y ayuda muchísimo a la visibilidad
- 💛 Conviérteme en sponsor en GitHub — soporte recurrente
- ☕ Invítame a un café — donación puntual
- 🐛 Abre issues o PRs con bugs, ideas o mejoras
Cualquier apoyo se traduce directamente en más tiempo para desarrollar features, mejorar la IA y mantener la plataforma online.
MIT