A full-stack social media application inspired by TaskPlanet, built as part of a Full Stack Internship Assignment. Users can create posts, upload images, like and comment on posts, and interact through a modern social feed.
- JWT-based Authentication (Signup & Login)
- Create posts with text and images
- Like and Comment functionality
- Cloudinary-powered image uploads
- Responsive Material UI design
- Dark/Light mode support
- Public social feed with user profiles and timestamps
- MongoDB Atlas database integration
- React.js
- Vite
- Material UI (MUI)
- React Router DOM
- Axios
- Node.js
- Express.js
- JWT Authentication
- MongoDB + Mongoose
- MongoDB Atlas
- Cloudinary
.
├── frontend/ # React + Vite client
└── backend/ # Express REST APIcd backend
npm installCreate a .env file inside the backend directory:
PORT=5000
MONGODB_URI=your_mongodb_atlas_uri
JWT_SECRET=your_jwt_secret
CLOUDINARY_CLOUD_NAME=your_cloudinary_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secretStart the backend server:
npm run devcd frontend
npm install
npm run devThe frontend will run locally and communicate with the backend API.
- Push the project to GitHub.
- Create a new Web Service on Render.
- Connect the repository.
- Set the Root Directory to:
backend- Build Command:
npm install- Start Command:
npm start- Add all environment variables from the
.envfile.
- Import the repository into Vercel.
- Select Vite as the framework.
- Set the Root Directory to:
frontend- Configure:
Build Command: npm run build
Output Directory: dist- Update the API
baseURLin:
frontend/src/api.jswith your deployed Render backend URL before deployment.
To populate the database with sample users and posts:
cd backend
node seed.jsBuilt as a Full Stack Internship Assignment using React, Node.js, Express, MongoDB Atlas, and Cloudinary.