- Overview
- Features
- Tech Stack
- System Architecture
- Detailed Feature Documentation
- Getting Started
- Development
- Testing
- Troubleshooting
- Performance Optimization
- Security Measures
- Monitoring
- Deployment
- Project Structure
- API Documentation
- Contributing
- License
UniSphere is a social networking platform designed specifically for university students, enabling them to connect, collaborate, and share resources within their academic community.
-
User Authentication
- Secure email & password authentication
- OAuth integration (Google, GitHub)
- JWT-based session management
-
Profile Management
- Customizable user profiles
- Academic information integration
- Skills and interests showcase
-
Social Networking
- Connect with fellow students
- Join university-specific groups
- Real-time messaging system
-
Content Sharing
- Post updates and announcements
- Share academic resources
- Create and join events
-
Frontend
- React.js
- Redux for state management
- Material-UI components
- Socket.io client
-
Backend
- Node.js & Express
- MongoDB database
- JWT authentication
- Socket.io for real-time features
- Component Structure
- Atomic Design Pattern
- Reusable UI Components
- Custom Hooks for Business Logic
- Redux Store Structure
- Auth State
- User State
- Posts State
- Messages State
- RESTful API Design
- Resource-based Routes
- JWT Authentication Middleware
- Rate Limiting
- Request Validation
- Database Schema
- Users Collection
- Posts Collection
- Messages Collection
- Groups Collection
- WebSocket Integration
- Real-time Message Handling
- Live Notifications
- Online Status Management
- JWT-based Authentication
- Access Token (24h expiry)
- Refresh Token (7 days expiry)
- Secure HTTP-only Cookies
- OAuth Providers
- Google Sign-in
- GitHub Integration
- University Email Verification
- Security Features
- Password Hashing (bcrypt)
- Rate Limiting
- CORS Protection
- User Profiles
- Basic Information
- Full Name
- University
- Major/Course
- Year of Study
- Academic Details
- Course Schedule
- Study Groups
- Academic Achievements
- Social Features
- Skills Badge System
- Endorsements
- Connection Network
- Basic Information
- Post Types
- Text Posts
- Media Posts (Images/Videos)
- Academic Resources
- Event Announcements
- Interaction Features
- Likes and Comments
- Share Functionality
- Save for Later
- Content Moderation
- Report System
- Auto-moderation
- Content Filtering
- Node.js (v18.x or higher)
- npm or yarn
- MongoDB (local or Atlas URI)
-
Clone the repository
git clone https://github.com/yourusername/unisphere.git cd unisphere -
Install server dependencies
npm install
-
Install client dependencies
cd client npm install -
Create .env file in root directory
NODE_ENV=development PORT=5000 MONGODB_URI=your_mongodb_uri JWT_SECRET=your_jwt_secret
-
Create .env file in client directory
REACT_APP_API_URL=http://localhost:5000
-
Start the development server
# In root directory npm run dev -
Start the client
# In client directory npm start
The application will be available at http://localhost:3000
cd client
npm run test- Unit Tests (Jest)
- Component Tests (React Testing Library)
- E2E Tests (Cypress)
npm run test:server- API Tests (Supertest)
- Unit Tests (Mocha/Chai)
- Integration Tests
-
MongoDB Connection Issues
# Check MongoDB status mongo --eval "db.adminCommand('ping')"
-
WebSocket Connection Errors
- Ensure correct WebSocket URL
- Check firewall settings
- Verify SSL certificates
-
Build Problems
# Clear cache and node_modules rm -rf node_modules rm -rf client/node_modules npm cache clean --force
- Code Splitting
- Lazy Loading
- Image Optimization
- Caching Strategies
- Bundle Size Analysis
- Database Indexing
- Query Optimization
- Caching Layer (Redis)
- Load Balancing
- CSRF Protection
- XSS Prevention
- SQL Injection Protection
- Input Validation
- Rate Limiting
- Security Headers
- Performance Metrics
- Error Tracking
- User Analytics
- Server Health Monitoring
-
Fork and push your code to GitHub
-
Create a Render account at render.com
-
In Render Dashboard:
- Click "New +" β "Blueprint"
- Connect your GitHub repository
- Select the repository
-
Configure Environment Variables:
NODE_ENV=production MONGODB_URI=your_production_mongodb_uri JWT_SECRET=your_production_jwt_secret -
Deploy:
- Click "Create Blueprint"
- Wait for the build process to complete
- Access your app at: https://your-app-name.onrender.com
unisphere/
βββ client/ # React frontend
β βββ public/
β βββ src/
β βββ package.json
βββ server/ # Node.js backend
β βββ controllers/
β βββ models/
β βββ routes/
β βββ server.js
βββ package.json
βββ render.yaml
API documentation is available at /api/docs when running the server locally.
- Fork the repository
- Create a new branch
- Make your changes
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.