A full-stack social media platform inspired by LinkedIn, built with modern web technologies. This application provides a professional networking experience with user authentication, post sharing, and community interaction features.
(https://mini-linked-in-one.vercel.app/)
- User Authentication: Secure registration and login with email/password
- User Profiles: Comprehensive profiles with name, email, bio, and profile pictures
- Post Feed: Create, read, and display text-only posts with timestamps
- Profile Pages: View individual user profiles and their posts
- Protected Routes: Secure frontend and backend route protection
- Follow/Unfollow System: Build your professional network
- Like/Unlike Posts: Engage with community content
- User Discovery: Search and discover new professionals
- Dark/Light Theme: Toggle between themes for better user experience
- Real-time Updates: Optimistic UI updates for seamless interaction
- Responsive Design: Mobile-first design that works on all devices
- Toast Notifications: Real-time feedback for user actions
- User Statistics: View follower/following counts and post metrics
- Trending Topics: Discover popular hashtags and topics
- Character Limit: Professional 1000-character limit for posts
- Profile Editing: Update your professional information
- Demo Login: Quick access with pre-configured demo accounts
- React 18 - Modern React with hooks and functional components
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first CSS framework
- React Router DOM - Client-side routing with protected routes
- Axios - HTTP client for API communication
- React Hot Toast - Beautiful toast notifications
- Lucide React - Modern icon library
- Vite - Fast build tool and development server
- Node.js - JavaScript runtime environment
- Express.js - Web application framework
- MongoDB Atlas - Cloud-hosted NoSQL database
- Mongoose - MongoDB object modeling
- JWT - JSON Web Tokens for authentication
- bcryptjs - Password hashing
- Express Validator - Input validation and sanitization
- CORS - Cross-origin resource sharing
- Helmet - Security middleware
- Express Rate Limit - Rate limiting middleware
- ESLint - Code linting
- Prettier - Code formatting
- Nodemon - Development server auto-restart
- dotenv - Environment variable management
Beautiful Register interface
Professional post feed with user interactions
Comprehensive user profiles with post history
Fully responsive design for all devices
- Node.js (v16 or higher)
- npm or yarn
- MongoDB Atlas account (or local MongoDB)
-
Clone the repository
git clone https://github.com/adarsh7raj/Mini-LinkedIn
-
Install backend dependencies
cd server npm install -
Environment Configuration Create a
.envfile in theserverdirectory:# Database Configuration MONGODB_URI=your mongodb instance # JWT Configuration JWT_SECRET=your-super-secret JWT_EXPIRE=7d # Server Configuration PORT=5000 NODE_ENV=development # Client Configuration CLIENT_URL=http://localhost:5173
-
Start the backend server
npm run dev
-
Install frontend dependencies
cd .. # Go back to root directory cd frontend npm install
-
Start the frontend development server
npm run dev
-
Access the application
- Frontend: http://localhost:5173
- Backend API: http://localhost:5000
The application comes with pre-seeded demo accounts for testing:
| Password | Role | |
|---|---|---|
| alice@example.com | demo123 | Software Engineer |
| bob@example.com | demo123 | Product Manager |
| emma@example.com | demo123 | UX Designer |
| david@example.com | demo123 | Data Scientist |
POST /api/auth/register- User registrationPOST /api/auth/login- User loginGET /api/auth/me- Get current user
GET /api/users- Get all users (with search)GET /api/users/:id- Get user by IDPUT /api/users/profile- Update user profilePOST /api/users/:id/follow- Follow/unfollow userGET /api/users/:id/posts- Get user's posts
GET /api/posts- Get all posts (feed)POST /api/posts- Create new postGET /api/posts/:id- Get post by IDPOST /api/posts/:id/like- Like/unlike post
- Glass Morphism: Modern frosted glass effects
- Gradient Backgrounds: Beautiful color transitions
- Micro-interactions: Smooth hover and click animations
- Typography: Professional font hierarchy
- Color System: Consistent primary, secondary, and accent colors
- Spacing System: 8px grid system for perfect alignment
- Shadow System: Layered shadows for depth perception
- Mobile: 320px - 768px
- Tablet: 768px - 1024px
- Desktop: 1024px+
- Password Hashing: bcrypt with 12 salt rounds
- JWT Authentication: Secure token-based authentication
- Input Validation: Server-side validation for all inputs
- Rate Limiting: 100 requests per 15 minutes per IP
- CORS Protection: Configured for specific origins
- Helmet Security: Security headers for Express
- XSS Protection: Input sanitization and validation
- Set production environment variables
- Use a process manager like PM2
- Configure reverse proxy (nginx)
- Enable HTTPS with SSL certificates
- Build the production bundle:
npm run build - Deploy to static hosting (Vercel, Netlify, etc.)
- Configure environment variables for production API
- Fork the repository
- Create a feature branch:
git checkout -b feature/new-feature - Commit changes:
git commit -am 'Add new feature' - Push to branch:
git push origin feature/new-feature - Submit a pull request
- Design inspiration from LinkedIn and modern social platforms
- Icons provided by Lucide React
- Stock photos from Pexels
- MongoDB Atlas for database hosting
For support and questions:
- Create an issue in the repository
- Contact: adarshrajyadav68@gmail.com
Built with β€οΈ using React, Node.js, and MongoDB
