How ebuube/nervenex works
Nervenex is a learning and community web application: users register, browse or create quizzes, submit timed answers and review attempts, and can access learning resources and discussion forums. The repository exposes a Flask REST API and a separate server-rendered web app over shared domain models and configurable storage. The README documents community and resource capabilities whose detailed handlers were not sampled; those branches are represented at their exact view-directory paths without asserting unverified call wiring.
Main entry points: __init__.py Storage facade · v1/app.py API app · web_dynamic/app.py Web app · answers.py Answer routes
Components 31
Web experience
- Web app
web_dynamic/app.py
REST API
- API app
api/v1/app.py - Authentication
api/v1/views/auth.py - Quiz routes
api/v1/views/quizzes.py - Question routes
api/v1/views/questions.py - Attempt routes
api/v1/views/attempts.py - Answer routes
api/v1/views/answers.py - User routes
api/v1/views/users.py - Category routes
api/v1/views/categories.py
Quiz learning
- Quiz model
models/quiz.py - Question model
models/question.py - Attempt model
models/attempt.py - Answer model
models/answer.py - Category model
models/category.py
Community and resources
- Resource routes
api/v1/views/resources.py - Thread routes
api/v1/views/threads.py - Post routes
api/v1/views/posts.py - Comment routes
api/v1/views/comments.py - Resource model
models/resource.py - Thread model
models/thread.py - Post model
models/post.py - Comment model
models/comment.py
Domain and storage
- Domain models
models - User model
models/user.py - Login state
models/authorized.py - Storage facade
models/__init__.py - SQL storage
models/engine/db_storage.py - JSON storage
models/engine/file_storage.py
Other components
- Learner
- SQL database
- JSON file
Connections 46
- Learner → Web app: browses
- Learner → API app: requests
- API app → Authentication: dispatches
- API app → Quiz routes: dispatches
- API app → Question routes: dispatches
- API app → Attempt routes: dispatches
- API app → Answer routes: dispatches
- API app → User routes: dispatches
- API app → Category routes: dispatches
- API app → Resource routes: dispatches
- API app → Thread routes: dispatches
- API app → Post routes: dispatches
- API app → Comment routes: dispatches
- Web app → Storage facade: queries
- Authentication → Storage facade: queries
- Authentication → User model: loads
- Authentication → Login state: authorizes
- Answer routes → Storage facade: queries and saves
- Answer routes → Attempt model: creates
- Answer routes → Answer model: records
- Answer routes → Question model: checks
- Answer routes → Quiz model: loads
- Answer routes → User model: loads
- Answer routes → Login state: checks
- Quiz routes → Storage facade: uses
- Question routes → Storage facade: uses
- Attempt routes → Storage facade: uses
- User routes → Storage facade: uses
- Category routes → Storage facade: uses
- Resource routes → Storage facade: uses
- Thread routes → Storage facade: uses
- Post routes → Storage facade: uses
- Comment routes → Storage facade: uses
- Storage facade → SQL storage: selects
- Storage facade → JSON storage: selects
- SQL storage → SQL database: reads and writes
- JSON storage → JSON file: reads and writes
- Web app → Quiz model: loads
- Web app → Attempt model: loads
- Web app → Category model: loads
- Web app → User model: loads
- Web app → Login state: checks
- Web app → Answer model: reads
- Quiz model → Question model: relates
- Attempt model → Answer model: relates
- Attempt model → Quiz model: relates