Welcome to Sociopedia, a comprehensive full-stack social media platform that combines modern web technologies to deliver a seamless, secure, and engaging user experience. This project showcases advanced features including dynamic content management, real-time interactions, and a sophisticated advertisement system.
- Secure Authentication & Authorization with JWT tokens
- Editable User Profiles with social media integration
- Dynamic Profile Updates for location, occupation, and social links
- Friend Connection System with real-time updates
- Post Creation & Management with image upload support
- Real-time Like & Comment System with interactive UI
- Feed Management with chronological sorting
- Image Processing with error handling and fallbacks
- Dynamic Advertisement Rotation with smooth transitions
- Click Tracking & Analytics for advertisement performance
- Material-UI Design System with dark/light mode support
- Responsive Design optimized for all screen sizes
- Smooth Animations and transitions throughout the app
- Interactive Components with hover effects and feedback
Clean and modern interface in light mode
Comprehensive user profile with editable social links and friend management
- Node.js & Express.js - Scalable server architecture
- MongoDB with Mongoose - NoSQL database with ODM
- JWT Authentication - Secure token-based authentication
- Bcrypt - Password encryption and security
- Multer - File upload handling for images
- Helmet & CORS - Enhanced security middleware
- Morgan - HTTP request logging
- React.js - Modern component-based UI framework
- Material-UI (MUI) - Comprehensive design system
- Redux Toolkit - Predictable state management
- Redux Persist - State persistence across sessions
- React Router - Client-side routing
- React Dropzone - Drag-and-drop file uploads
- User Model - Profile management with social links
- Post Model - Content creation with engagement tracking
- Advertisement Model - Dynamic ad management with analytics
- Comment System - Nested commenting functionality
- Real-time Ad Rotation - Automatic content switching every 5 seconds
- Click Analytics - Comprehensive tracking and reporting
- Dynamic Theming - Ads adapt to content with custom colors
- Priority Management - Smart ad ordering based on performance
- Budget & Cost Tracking - Complete monetization system
- Friend Management - Add/remove friends with instant updates
- Social Media Integration - Connect Twitter, LinkedIn profiles
- Profile Customization - Edit personal information in real-time
- Activity Tracking - Profile views and post impressions
- Theme Switching - Seamless dark/light mode toggle
- Responsive Design - Optimized for desktop, tablet, and mobile
- Loading States - Smooth transitions and feedback
- Error Handling - Graceful fallbacks and user notifications
- Node.js (v14 or higher)
- MongoDB (local or cloud instance)
- npm or yarn package manager
cd server
npm install
cp .env.example .env
npm start
cd client
npm install
npm start
MONGO_URL=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
PORT=3001
MAX_FILE_SIZE=10485760
POST /auth/register
- User registration with profile picturePOST /auth/login
- User authentication
GET /users/:id
- Get user profilePATCH /users/:id
- Update user informationGET /users/:id/friends
- Get user's friends listPATCH /users/:id/:friendId
- Add/remove friends
GET /posts
- Get all posts (feed)POST /posts
- Create new post with imageGET /posts/:userId
- Get user's postsPATCH /posts/:id/like
- Like/unlike posts
GET /advertisements
- Get active advertisementsPOST /advertisements/:id/click
- Record ad clicksPOST /advertisements
- Create new advertisement (admin)PATCH /advertisements/:id
- Update advertisement (admin)
- Real-time Messaging - Direct messaging between users
- Story Feature - Temporary content sharing
- Advanced Analytics - Detailed user engagement metrics
- Push Notifications - Real-time alerts and updates
- Content Moderation - AI-powered content filtering
- Mobile App - React Native implementation
- Video Support - Video upload and streaming
- Group Management - Create and manage user groups
This project is licensed under the MIT License - see the LICENSE file for details.