How yashmgp69420/online_post_project works
Threadit is a lightweight image-and-caption posting application. A visitor opens the React app, browses a feed fetched from the Express API, or creates a post by entering a caption and optionally selecting an image. The API uploads the image to ImageKit, stores its URL and caption in MongoDB, and returns the created post; feed requests read posts from MongoDB. The frontend also provides theme switching and local presentation controls. Source excerpts show these core paths, but do not establish persistence for votes, comments, or sorting.
Main entry points: app.js Express API · App.jsx App routing · Feed.jsx Feed view · storage.service.js Image upload
Components 15
Web client
- React entry
FRONTEND/frontend/src/main.jsx - App routing
FRONTEND/frontend/src/App.jsx - Feed view
FRONTEND/frontend/src/pages/Feed.jsx - Post editor
FRONTEND/frontend/src/pages/CreatePost.jsx - Theme state
FRONTEND/frontend/src/ThemeContext.jsx
Post API
- Server startup
BACKEND/server.js - Express API
BACKEND/src/app.js - Post model
BACKEND/src/models/post.models.js - DB connection
BACKEND/src/db/db.js
Storage integrations
- Image upload
BACKEND/src/services/storage.service.js
Other components
- Visitor
- Browser
- Browser storage
- MongoDB
- ImageKit
Connections 20
- Visitor → Browser: uses
- Browser → React entry: opens app
- React entry → App routing: renders
- App routing → Feed view: routes to
- App routing → Post editor: routes to
- Visitor → Feed view: browses
- Visitor → Post editor: composes post
- App routing → Theme state: provides theme
- Theme state → Browser storage: reads and writes
- Feed view → Express API: GET /
- Express API → Feed view: returns posts
- Post editor → Express API: POST /create-post
- Server startup → Express API: starts listener
- Server startup → DB connection: connects database
- DB connection → MongoDB: connects
- Express API → Post model: creates and finds
- Post model → MongoDB: reads and writes
- Express API → Image upload: uploads image
- Image upload → ImageKit: sends image
- Image upload → Express API: returns image URL