How inholland-student/comic-book-library works
Comic Book Library is a Vue/Flask application for authenticated, role-based comic collection access. Users sign in, receive a JWT cookie, and browse comics; admins additionally create, edit, and delete comics, while staff roles create permitted users. The frontend stores session and collection state, services call Flask routes, route handlers enforce validation and RBAC, and persistence helpers read or write MySQL. The graph reflects sampled runtime code and README capabilities; unsampled helper internals are shown only where their paths and callers are supported.
Components 22
Frontend Client
- Vue Entry
frontend/src/main.js - App Shell
frontend/src/App.vue - Vue Router
frontend/src/router/index.js - Auth Views
frontend/src/views/LoginView.vue - Comics View
frontend/src/views/ComicsView.vue - User Creation View
frontend/src/views/CreateUserView.vue - Auth Service
frontend/src/services/auth.js - Comics Service
frontend/src/services/comics.js - Auth Store
frontend/src/stores/auth.js - Comics Store
frontend/src/stores/comics.js
Authentication
- Auth Routes
backend/app/features/auth/auth_routes.py - Auth Logic
backend/app/features/auth/auth.py - Password Service
backend/app/features/auth/password_service.py - RBAC Middleware
backend/app/features/common/middleware/rbac.py - User Persistence
backend/app/features/auth/user_db.py - User Model
backend/app/features/auth/user.py
Comic Domain
- Comic Routes
backend/app/features/comics/comic_routes.py - Comic Persistence
backend/app/features/comics/comic_db.py - Comic Model
backend/app/features/comics/comic.py
Persistence
- Flask App Factory
backend/app/__init__.py - MySQL Database
backend/app/features/common/persistence/db.py
Other components
- Library User
Connections 28
- Library User → Vue Entry: uses
- Vue Entry → App Shell: mounts
- Vue Entry → Vue Router: installs
- App Shell → Vue Router: renders
- App Shell → Auth Service: calls
- Auth Views → Auth Service: requests
- User Creation View → Auth Service: creates users
- Comics View → Comics Store: loads and edits
- Auth Service → Auth Routes: requests
- Comics Service → Comic Routes: requests
- Auth Service → Auth Store: updates session
- App Shell → Auth Store: updates session
- Comics Store → Comics Service: requests
- Auth Routes → Auth Logic: verifies and signs
- Auth Routes → User Persistence: reads and creates
- Auth Logic → User Persistence: loads user
- Auth Logic → Password Service: checks password
- Auth Routes → RBAC Middleware: requires identity
- Comic Routes → RBAC Middleware: enforces roles
- Comic Routes → Comic Persistence: reads and mutates
- Comic Routes → User Persistence: resolves creator
- Flask App Factory → Auth Routes: registers
- Flask App Factory → Comic Routes: registers
- User Persistence → MySQL Database: reads and writes
- Comic Persistence → MySQL Database: reads and writes
- User Model → MySQL Database: maps users
- Comic Model → MySQL Database: maps comics
- Flask App Factory → MySQL Database: initializes