How warmarth/folio works
Folio is a Flask API for a developer-learning platform. Learners and mentors register or log in, receive JWTs, create or browse profiles, and manage mentorship requests; active relationships expose mentor-created exercises to learners. Learners submit answers for AI evaluation, with successful work awarding XP. Profile image upload is an optional R2 integration. The graph follows documented routes and sampled call ownership; unsampled route wiring and model details are represented only where the README supports the capability.
Main entry points: __init__.py Flask app · database.py SQLite database · routes.py Profile routes · submit_exercise_service.py Submission service
Components 18
API entrypoints
- Flask app
backend/app/__init__.py
Identity and profiles
- Authentication routes
backend/app/auth/routes.py - Profile routes
backend/app/routes/routes.py - Users and profiles
backend/app/models.py - Image upload helper
backend/app/storage/r2.py
Mentorship
- Mentorship routes
backend/app/routes/mentorlearner.py - Relationship service
backend/app/services/relationshipservices.py - Relationship repository
backend/app/repository/mentorlearnerrepo.py
Exercises and evaluation
- Exercise routes
backend/app/routes/exercise_route.py - Submission routes
backend/app/routes/submitted.py - Submission service
backend/app/services/submit_exercise_service.py - Submission repository
backend/app/repository/exercise_submission.py - AI evaluator
backend/app/evaluator/ai_evaluator.py
Persistence and uploads
- Domain models
backend/app/models.py - SQLite database
backend/app/database.py
Other components
- API client
- Cloudflare R2
- Groq
Connections 23
- API client → Flask app: sends requests
- Flask app → Authentication routes: registers routes
- Flask app → Profile routes: registers routes
- Flask app → Mentorship routes: registers routes
- Flask app → Exercise routes: registers routes
- Flask app → Submission routes: registers routes
- Authentication routes → Users and profiles: queries users
- Authentication routes → SQLite database: writes accounts
- Profile routes → Users and profiles: queries profiles
- Profile routes → SQLite database: writes profiles
- Profile routes → Image upload helper: uploads image
- Image upload helper → Cloudflare R2: stores image
- Mentorship routes → Relationship service: manages requests
- Relationship service → Relationship repository: reads and updates
- Relationship repository → SQLite database: persists relationships
- Exercise routes → SQLite database: queries and writes
- Submission routes → Submission service: submits answer
- Submission service → Submission repository: reads and saves
- Submission service → AI evaluator: evaluates answer
- AI evaluator → Groq: requests evaluation
- Submission service → SQLite database: reads exercise and awards XP
- Submission repository → SQLite database: persists submissions
- Flask app → SQLite database: initializes storage