The Campus Operating System โ Syncing grades, social life, and everything in between.
IIIT Social is a comprehensive campus-wide platform designed to unify fragmented communication channels, streamline student interactions, and foster meaningful connections across the IIIT Hyderabad community.
- The Problem
- Our Solution
- Key Features
- Tech Stack
- Getting Started
- Project Structure
- API Documentation
- Contributing
- AI Development Disclosure
- License
Campus life at IIIT Hyderabad faces several disconnected challenges:
Students juggle 4+ messaging apps (WhatsApp, Discord, Telegram, Instagram) for different groups, leading to:
- Missed announcements buried in group spam
- Zero discoverability of events, clubs, or opportunities
- No way to connect with like-minded peers outside your immediate circle
- Many WhatsApp groups with overlapping purposes
- Important updates lost in meme floods
- No searchable history or organized threads
- Anonymous questions asked publicly on Facebook with delayed responses
Course projects and hackathons turn into a scramble:
- "Looking for a backend dev for HCI project" posts get lost in group chats
- Shallow matching based on social connections rather than skills
- Last-minute team formation leads to misaligned expectations
- Students want to attend events but hesitate to go alone
- No visibility into who else is attending workshops, concerts, or talks
- Potential friendships never form due to lack of discovery mechanisms
Sensitive topics (mental health, academic struggles, career confusion) lack safe, judgment-free spaces for discussion.
IIIT Social consolidates all campus interactions into a single, intuitive platformโa true "campus operating system" that combines:
- Anonymous Posting: Discuss sensitive topics (mental health, career doubts, complaints) without revealing identity
- Threaded Discussions: Reddit-style nested comments for organized conversations
- Topic Tags: Filter by academics, events, social, complaints, confessions
- Search & Archive: Find old discussions and relevant advice instantly
- Upvote/Downvote System: Community-moderated content quality
- Interactive Campus Map: Leaflet-based visualization of IIIT campus
- Real-time Friend Locations: See which friends are at the library, mess, or sports complex
- Privacy Controls: Toggle location sharing on/off with granular permissions
- Location-based Discovery: Find students near specific buildings or events
- Visual Heatmaps: See popular campus spots at different times
A one-stop hub for campus transactions and gig work:
- Cab Sharing: Find ride companions for airport/city trips with cost splitting
- Buy/Sell: Textbooks, electronics, furniture, sports equipment with category filters
- Lost & Found: Report and search for lost items with image upload
- Campus Gigs: Post tasks (food runs, study help, surveys, skill trades) with rewards
- Mess Bookings: Trade meal slots or find dinner companions
- Applicant Management: Accept/reject applicants for gigs with status tracking
- 1-on-1 Conversations: Secure messaging between students
- Emoji Reactions: Express reactions to messages
- Read Receipts: See message delivery and read status
- Rich Media: Share images, files, and links
- Conversation History: Searchable message archives
- Sleek Sidebar Navigation: Persistent left sidebar with icon-based menu
- Cyber-themed UI: Dark mode with neon accents, glassmorphism effects
- Smooth Animations: Framer Motion-powered transitions and micro-interactions
- Responsive Layout: Mobile-first design that adapts to all screen sizes
- Team Matching Carousel: Swipe through potential teammates with 3D flip cards
- Interactive Questionnaires: Context-aware questions for courses/events
- Smart Matching Algorithm: Pair students based on skills, availability, and preferences
- Visual Match Results: Celebratory animations for successful matches
- Public Profile: Full name, avatar, resume, skills for professional networking
- Anonymous Profile: Auto-generated avatar and nickname for sensitive discussions
- Context Switching: Seamlessly toggle between identities based on post type
- Live Notifications: Instant alerts for messages, matches, and marketplace activity
- Socket.io Integration: Real-time messaging and location updates
- Background Sync: Automatic data refresh without manual reloading
- JWT Authentication: Secure token-based auth with refresh tokens
- Environment Protection:
.envfiles excluded from version control - CORS Configuration: Controlled cross-origin requests
- Input Validation: Server-side validation for all API requests
| Technology | Version | Purpose |
|---|---|---|
| React | 19.2.0 | Component-based UI framework |
| TypeScript | 5.9.3 | Type-safe JavaScript |
| Vite | 7.2.4 | Lightning-fast build tool with HMR |
| TailwindCSS | 4.1.18 | Utility-first CSS framework |
| React Router | 7.13.0 | Client-side routing |
| React Query | 5.90.20 | Server state management & caching |
| Zustand | 5.0.10 | Lightweight state management |
| Leaflet | 1.9.4 | Interactive maps for location features |
| Framer Motion | 12.29.0 | Animation library |
| Lucide React | 0.563.0 | Icon library |
| Axios | 1.13.2 | HTTP client |
| React Hook Form | 7.71.1 | Form validation |
| date-fns | 4.1.0 | Date manipulation |
| Emoji Mart | 5.6.0 | Emoji picker |
| Technology | Version | Purpose |
|---|---|---|
| Node.js | 20+ | JavaScript runtime |
| Express.js | 4.18.2 | Web application framework |
| MongoDB | 6.3.0 | NoSQL database |
| Mongoose | 8.0.0 | MongoDB ODM with schema validation |
| JWT | 9.0.2 | Token-based authentication |
| bcryptjs | 2.4.3 | Password hashing |
| Socket.io | 4.6.0 | Real-time bidirectional communication |
| Express Validator | 7.0.1 | Request validation middleware |
| Multer | 1.4.5-lts.1 | File upload handling |
| CORS | 2.8.5 | Cross-origin resource sharing |
| dotenv | 16.3.1 | Environment variable management |
- Frontend: Component-based architecture with React hooks and custom hooks
- Backend: MVC pattern with RESTful API design
- Database: MongoDB with Mongoose schemas and indexes
- Authentication: JWT with access/refresh token rotation
- Real-time: Socket.io for live messaging and location updates
- State Management: React Query for server state, Zustand for client state
- Node.js: v18.0.0 or higher (Download)
- MongoDB: v6.0 or higher (Download)
- Git: Latest version (Download)
- npm: Comes with Node.js (or use yarn/pnpm)
git clone https://github.com/your-username/iiit-social.git
cd iiit-social# Navigate to backend directory
cd Backend
# Install dependencies
npm install
# Create environment file
cp .env.example .envConfigure .env file:
# Database
MONGODB_URI=
# Server
PORT=3000
NODE_ENV=development
# JWT Authentication
JWT_SECRET=your_super_secret_jwt_key_change_this_in_production
JWT_EXPIRES_IN=7d
# Frontend URL (for CORS)
FRONTEND_URL=http://localhost:5173Start the backend server:
# Development mode with auto-restart
npm run dev
# OR Production mode
npm startBackend will run on http://localhost:3000
# Navigate to frontend directory (from project root)
cd Frontend
# Install dependencies
npm install
# Create environment file (optional)
echo "VITE_API_URL=http://localhost:3000" > .env.localStart the frontend development server:
npm run devFrontend will run on http://localhost:5173
# From Backend directory
cd Backend
# Seed marketplace and gigs data
npm run seed:marketplace
# OR seed all data (users, profiles, events, etc.)
npm run seedThis will create:
- 10 sample gigs (food runs, study help, surveys, skill trades)
- 15 marketplace items (mess bookings, books, electronics, furniture, sports)
- Sample user accounts and profiles
IIIT-Social/
โโโ Backend/ # Express.js backend server
โ โโโ src/
โ โ โโโ models/ # Mongoose schemas
โ โ โ โโโ User.js
โ โ โ โโโ Profile.js
โ โ โ โโโ Marketplace.js
โ โ โ โโโ Gigs.js
โ โ โ โโโ Event.js
โ โ โ โโโ Anonymous.js
โ โ โ โโโ Matching.js
โ โ โ โโโ Messaging.js
โ โ โ โโโ Notification.js
โ โ โโโ routes/ # API route handlers
โ โ โ โโโ auth.js
โ โ โ โโโ profile.js
โ โ โ โโโ marketplace.js
โ โ โ โโโ events.js
โ โ โ โโโ matching.js
โ โ โ โโโ messages.js
โ โ โ โโโ notifications.js
โ โ โโโ middleware/ # Express middleware
โ โ โ โโโ auth.js
โ โ โ โโโ validation.js
โ โ โโโ controllers/ # Business logic
โ โ โโโ scripts/ # Database seeding scripts
โ โ โ โโโ seed.js
โ โ โ โโโ seed-marketplace.js
โ โ โโโ server.js # Express app entry point
โ โโโ .env # Environment variables (gitignored)
โ โโโ .env.example # Environment template
โ โโโ package.json
โ
โโโ Frontend/ # React + TypeScript frontend
โ โโโ src/
โ โ โโโ components/ # Reusable UI components
โ โ โ โโโ layout/
โ โ โ โ โโโ Sidebar.tsx
โ โ โ โ โโโ Layout.tsx
โ โ โ โโโ common/
โ โ โ โ โโโ Button.tsx
โ โ โ โ โโโ Modal.tsx
โ โ โ โ โโโ Card.tsx
โ โ โ โโโ features/
โ โ โโโ pages/ # Route components
โ โ โ โโโ HomePage.tsx
โ โ โ โโโ ForumPage.tsx
โ โ โ โโโ MarketplacePage.tsx
โ โ โ โโโ TeamMatchPage.tsx
โ โ โ โโโ EventsPage.tsx
โ โ โ โโโ LocationPage.tsx
โ โ โ โโโ MessagesPage.tsx
โ โ โโโ hooks/ # Custom React hooks
โ โ โโโ store/ # Zustand stores
โ โ โโโ utils/ # Helper functions
โ โ โโโ types/ # TypeScript type definitions
โ โ โโโ App.tsx # Root component
โ โ โโโ main.tsx # Entry point
โ โโโ public/ # Static assets
โ โโโ index.html
โ โโโ tailwind.config.js # TailwindCSS configuration
โ โโโ vite.config.ts # Vite configuration
โ โโโ package.json
โ
โโโ Documents/ # Project documentation
โ โโโ api-documentation.md # Comprehensive API docs
โ
โโโ README.md # This file
Comprehensive API documentation is available in Documents/api-documentation.md.
Base URL: http://localhost:3000/api
POST /auth/register- Register new userPOST /auth/login- User loginPOST /auth/refresh- Refresh access tokenGET /auth/me- Get current user
GET /marketplace- List all marketplace items (with filters)POST /marketplace- Create new itemPUT /marketplace/:id- Update itemDELETE /marketplace/:id- Delete itemPOST /marketplace/:id/apply- Apply to marketplace itemPOST /marketplace/:id/accept/:applicantId- Accept applicantPOST /marketplace/:id/reject/:applicantId- Reject applicant
GET /gigs- List all gigs (with filters)POST /gigs- Create new gigPUT /gigs/:id- Update gigDELETE /gigs/:id- Delete gigPOST /gigs/:id/apply- Apply to gig
POST /matching/create- Create new team match requestGET /matching/matches- Get potential matchesPOST /matching/respond- Respond to match (accept/reject)
GET /events- List all eventsPOST /events- Create new eventPOST /events/:id/rsvp- RSVP to event
GET /messages/conversations- List all conversationsGET /messages/:conversationId- Get conversation messagesPOST /messages/:conversationId- Send message
We welcome contributions from the IIIT community! Here's how you can help:
- Fork the repository
- Create a feature branch
git checkout -b feature/your-feature-name
- Make your changes
- Follow existing code style and conventions
- Write clear commit messages
- Add comments for complex logic
- Test your changes
- Run frontend:
cd Frontend && npm run dev - Run backend:
cd Backend && npm run dev - Test all affected features
- Run frontend:
- Commit and push
git add . git commit -m "feat: add your feature description" git push origin feature/your-feature-name
- Create a Pull Request
- Provide a clear description of changes
- Reference any related issues
- Wait for code review
- Frontend: Use TypeScript, follow React hooks best practices
- Backend: Use ES6+ features, async/await for async operations
- Formatting: Prettier/ESLint configured (run
npm run lint) - Commits: Use conventional commits (feat, fix, docs, refactor, etc.)
- ๐ Bug fixes and issue resolution
- โจ New features (marketplace categories, event types, etc.)
- ๐ Documentation improvements
- ๐จ UI/UX enhancements
- โก Performance optimizations
- ๐งช Test coverage expansion
This project was developed with significant assistance from AI tools (primarily Claude 3.5 Sonnet and GitHub Copilot) to accelerate development and enhance code quality.
- Code Generation: Initial component scaffolding, boilerplate reduction, and repetitive pattern implementation
- Debugging: Identifying syntax errors, logic issues, and edge cases
- Architecture Decisions: Suggesting best practices for React patterns, MongoDB schema design, and API structure
- Documentation: Generating comprehensive README, inline code comments, and API documentation
- Responsive Design: Implementing TailwindCSS breakpoints and layout strategies
- Problem Solving: Resolving git merge conflicts, dependency issues, and configuration errors
While AI tools provided substantial assistance, all core decisions were made by human developers:
- Product Vision: Problem definition, feature prioritization, and user experience design
- Business Logic: Team matching algorithms, marketplace rules, and privacy controls
- Code Review: Manual verification of AI-generated code for correctness and security
- Testing: Comprehensive manual testing of all features and user flows
- Integration: Connecting frontend/backend, database design, and third-party services
Using AI as a development partner enabled:
- Faster Prototyping: Reduced development time from months to weeks
- Higher Quality: Leveraged AI knowledge of best practices and common pitfalls
- Skill Development: Learned new patterns and techniques through AI explanations
- Focus on Innovation: Spent more time on unique features rather than boilerplate
We believe in transparency about AI usage and view it as a powerful tool for learning and productivityโnot a replacement for human creativity and judgment.
This project is licensed under the MIT License - see the LICENSE file for details.
Developed with โค๏ธ by students of IIIT Hyderabad for the campus community.
Contact: [Your Email] | [GitHub Profile]
- IIIT Hyderabad for providing the inspiration and environment
- Open Source Community for amazing libraries and tools
- AI Assistants (Claude, GitHub Copilot) for development support
- Early Testers for valuable feedback and feature suggestions
- Mobile App: React Native version for iOS/Android
- Push Notifications: Browser notifications for real-time alerts
- Advanced Search: Full-text search across forum, marketplace, and events
- Analytics Dashboard: Personal activity insights and campus trends
- Course Integration: Link to IIIT course catalog and registration
- Club Management: Dedicated pages for student clubs and societies
- Gamification: Badges, points, and leaderboards for engagement
- AI Recommendations: Personalized event suggestions and teammate matching
- Video Calls: Integrated video chat for group project coordination
Built for IIIT, by IIIT students ๐
Backend: Express, MongoDB, Mongoose, JWT, Socket.IO
Frontend: React, TypeScript, Vite, TanStack Query, Tailwind
All endpoints require Authorization: Bearer <token> except signup/login.
POST /api/auth/signup- RegisterPOST /api/auth/login- LoginGET /api/profile/me- Get profileGET /api/marketplace- List itemsGET /api/events- List eventsGET /api/groups- List groupsGET /api/matching/matches- Get matchesGET /api/messages/channels- Get channelsGET /api/notifications- Get notifications