How mihalypal/prf-forum works
PRF-Forum is a browser-based forum with an Angular frontend and an Express/Mongoose backend. Users register or log in, browse topics, open discussions, comment and like; authenticated users can manage their topics, while administrators can manage users. The frontend routes screens through services that make credentialed HTTP requests to backend routes, which apply authentication and persist forum data in MongoDB. The graph includes documented routes and major README capabilities; several screens and backend route handlers were not sampled, so their internal relationships are not asserted.
Main entry points: routes.ts Express routes · app.routes.ts App routes · Topic.ts Topic model · auth.service.ts Auth service
Components 21
Angular forum
- App routes
frontend/src/app/app.routes.ts - Login and signup
frontend/src/app/login/login.component.ts - Topic listing
frontend/src/app/topics/topics.component.ts - Discussion view
frontend/src/app/topic-view/topic-view.component.ts - My topics
frontend/src/app/my-topics/my-topics.component.ts - User management
frontend/src/app/user-management/user-management.component.ts
Identity and access
- Auth service
frontend/src/app/shared/services/auth.service.ts - Access guards
frontend/src/app/shared/guards/auth.guard.ts - User service
frontend/src/app/shared/services/user.service.ts - Passport auth
backend/src/passport/passport.ts
Forum operations
- Express routes
backend/src/routes/routes.ts - Server setup
backend/src/index.ts - Topic service
frontend/src/app/shared/services/topic.service.ts - Confirm dialog
frontend/src/app/shared/components/dialog/dialog.component.ts
MongoDB models
- User model
backend/src/model/User.ts - Topic model
backend/src/model/Topic.ts - Comment model
backend/src/model/Comment.ts - Topic likes
backend/src/model/UsersLikesTopic.ts - Comment likes
backend/src/model/UsersLikesComment.ts
Other components
- Forum user
- MongoDB
Connections 32
- Forum user → App routes: opens screens
frontend/src/app/app.routes.ts - App routes → Login and signup: routes to
frontend/src/app/app.routes.ts - App routes → Topic listing: routes to
frontend/src/app/app.routes.ts - App routes → Discussion view: routes to
frontend/src/app/app.routes.ts - App routes → My topics: guards route
frontend/src/app/app.routes.ts - App routes → User management: guards route
frontend/src/app/app.routes.ts - Login and signup → Auth service: authenticates
frontend/src/app/shared/services/auth.service.ts - User management → User service: manages users
frontend/src/app/user-management/user-management.component.ts - User management → Auth service: checks access
frontend/src/app/user-management/user-management.component.ts - My topics → Topic service: loads topics
frontend/src/app/my-topics/my-topics.component.ts - Topic listing → Topic service: loads and edits
frontend/src/app/topics/topics.component.ts - Discussion view → Topic service: comments and likes
frontend/src/app/topic-view/topic-view.component.ts - Topic listing → Confirm dialog: confirms deletion
frontend/src/app/topics/topics.component.ts - Discussion view → Confirm dialog: confirms deletion
frontend/src/app/topic-view/topic-view.component.ts - Auth service → Express routes: HTTP auth requests
frontend/src/app/shared/services/auth.service.ts - Topic service → Express routes: HTTP topic requests
frontend/src/app/shared/services/topic.service.ts - User service → Express routes: HTTP user requests
- Access guards → Auth service: checks status
frontend/src/app/shared/guards/auth.guard.ts - Server setup → Express routes: configures routes
backend/src/index.ts - Server setup → Passport auth: configures auth
backend/src/index.ts - Server setup → User model: loads model
backend/src/index.ts - Passport auth → User model: authenticates users
backend/src/passport/passport.ts - Express routes → User model: queries users
backend/src/routes/routes.ts - Express routes → Topic model: queries topics
backend/src/routes/routes.ts - Express routes → Comment model: creates comments
backend/src/routes/routes.ts - Express routes → Topic likes: records topic likes
backend/src/routes/routes.ts - Express routes → Comment likes: handles comment likes
backend/src/routes/routes.ts - Topic model → Comment model: embeds comments
backend/src/model/Topic.ts - Comment model → Comment likes: embeds likes
backend/src/model/Comment.ts - Topic model → Topic likes: embeds likes
backend/src/model/Topic.ts - User model → MongoDB: persists records
backend/src/model/User.ts - Topic model → MongoDB: persists records
backend/src/model/Topic.ts