https://github.com/codesparkapp/api
The backend service for CodeSpark, a gamified Java learning platform for students
https://github.com/codesparkapp/api
api backend codespark java maven spring-boot
Last synced: 2 months ago
JSON representation
The backend service for CodeSpark, a gamified Java learning platform for students
- Host: GitHub
- URL: https://github.com/codesparkapp/api
- Owner: CodeSparkApp
- License: other
- Created: 2024-11-18T14:25:48.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-09-03T18:36:00.000Z (10 months ago)
- Last Synced: 2025-09-03T20:26:46.933Z (10 months ago)
- Topics: api, backend, codespark, java, maven, spring-boot
- Language: Java
- Homepage:
- Size: 322 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CodeSpark - Backend
The backend service for **CodeSpark**, a gamified Java learning platform for students.
This Spring Boot application handles user authentication, lesson management, AI-powered evaluations, badge achievements, and more.
## ๐ Features
- ๐ Lesson system with multiple types
- ๐ค AI-based answer evaluation using OpenAI
- ๐ง Progress tracking and lesson skipping
- ๐ Badge system for gamification
- ๐ JWT-based authentication
## ๐ฆ Tech Stack
- Java 21 + Spring Boot
- PostgreSQL
- OpenAI
- Cloudinary
- Docker
## ๐ ๏ธ Setup
### Prerequisites
- Java 21
- Maven
- PostgreSQL setup
- Cloudinary account
- SMTP credentials
### Environment Variables
These must be provided via environment variables:
| Key | Description |
|---------------------------------|-----------------------------------|
| `DATABASE_URL` | JDBC connection string |
| `DATABASE_USERNAME` | DB username |
| `DATABASE_PASSWORD` | DB password |
| `JWT_SECRET_KEY` | Secret for token signing |
| `SMTP_ACCOUNT_EMAIL` | SMTP account email |
| `SMTP_ACCOUNT_PASSWORD` | SMTP password |
| `OPENAI_API_KEY` | OpenAI API Key |
| `OPENAI_API_PROJECT_ID` | OpenAI Project ID |
| `OPENAI_API_ORGANIZATION_ID` | OpenAI Org ID |
| `CLOUDINARY_URL` | Cloudinary API URL |
## ๐งช Running Tests
Use the `test` Spring profile:
```bash
mvn test -Dspring.profiles.active=test
```
## ๐ค Related Repositories
* [Frontend](https://github.com/CodeSparkApp/Frontend) โ Vaadin-based frontend
* [Organization Overview](https://github.com/CodeSparkApp)
## ๐ License
Distributed under the `Attribution-NonCommercial-ShareAlike 4.0 International`. See `LICENSE` for more information.