How kukss1/nakmo-news-portal-free works
Nakmo is a multilingual news platform with a Next.js reader and an Express API. Readers browse news and reels; the platform also supports article publishing and administration, accounts, saved stories, likes, comments, notifications, subscriptions, translations, and external-news ingestion. The homepage source shows server-side MongoDB reads, while the backend entry point mounts API routes and schedules suggestion-fetching and cleanup jobs. Several backend route/controller connections and most frontend API calls were not sampled, so those links are omitted rather than inferred.
Main entry points: backend/index.js API application · commentController.js Comments · pages/index.js Home feed · articleController.js Article operations
Components 24
News experience
- Home feed
frontend/pages/index.js - Article pages
frontend/pages/news/[[...slug]].js - News reels
frontend/pages/reels.js - Frontend API client
frontend/lib/api.js
Backend API
- API application
backend/index.js - User routes
backend/src/routes/userRoutes.js - GNews route
backend/src/routes/gnewsRoutes.js - Subscription route
backend/src/routes/subscriptionRoutes.js - Subscriptions
backend/src/controllers/subscriptionController.js
Content and engagement
- Article operations
backend/src/controllers/articleController.js - Comments
backend/src/controllers/commentController.js - Likes
backend/src/controllers/likeController.js - Article records
backend/src/models/Article.js - Comment records
backend/src/models/Comment.js - Notifications
backend/src/models/Notification.js
Identity and services
- User profiles
backend/src/controllers/userController.js - MongoDB
- Firebase
News ingestion
- GNews ingestion
backend/src/controllers/gnewsController.js - News suggestions
backend/src/controllers/newsApiController.js - Suggested stories
backend/src/models/SuggestedArticle.js - GNews
- Event Registry
Other components
- Reader
Connections 29
- Reader → Home feed: browses
- Reader → Article pages: opens stories
- Reader → News reels: watches
- Home feed → MongoDB: reads feed
- Home feed → Article records: queries
- Frontend API client → API application: calls API
- API application → User routes: mounts
- User routes → User profiles: dispatches
- User profiles → MongoDB: reads and writes
- API application → GNews route: mounts
- GNews route → GNews ingestion: dispatches
- GNews ingestion → GNews: fetches news
- API application → Subscription route: mounts
- Subscription route → Subscriptions: dispatches
- API application → Article operations: mounts article routes
- Article operations → Article records: reads and writes
- Article operations → MongoDB: queries
- API application → Comments: mounts comment routes
- Comments → Comment records: reads and writes
- Comments → Article records: looks up article
- Comments → Notifications: creates notification
- Comments → MongoDB: queries
- API application → Likes: mounts like routes
- Likes → MongoDB: reads and writes
- API application → News suggestions: schedules fetch
- News suggestions → Event Registry: fetches articles
- News suggestions → Suggested stories: stores suggestions
- API application → MongoDB: connects
- Firebase → User profiles: auth integration