SlotSwapper is a web application that allows students to manage and swap their class schedules efficiently. Built with React and Node.js, it provides an intuitive interface for viewing, managing, and exchanging class time slots with other students.
- 📅 View and manage your class schedule
- 🔄 Request slot swaps with other students
- ✅ Accept or reject incoming swap requests
- 🔔 Real-time status updates for swap requests
- 🔐 Secure authentication system
- 💼 User-friendly interface
- React 18
- Vite
- TailwindCSS
- Lucide React (for icons)
- Node.js
- Express.js
- MongoDB
- JWT Authentication
Before running this project, make sure you have the following installed:
- Node.js (v14 or higher)
- MongoDB (running locally or a cloud instance)
git clone https://github.com/kaushal8787/Slot-Swapper.git
cd Slot-Swapper# Navigate to backend directory
cd backend
# Install dependencies
npm install
# Create .env file with following content
# Replace MONGODB_URI with your MongoDB connection string
echo "MONGODB_URI=your_mongodb_uri
PORT=5000
JWT_SECRET=your_jwt_secret" > .env
# Start the backend server
npm run dev# Open a new terminal and navigate to frontend directory
cd frontend
# Install dependencies
npm install
# Start the frontend development server
npm run dev- Frontend: Open http://localhost:3000 in your browser
- Backend API: http://localhost:5000
- Register/Login: Create a new account or login with existing credentials
- View Schedule: See your current class schedule on the calendar view
- Make Slots Swappable: Mark any of your slots as available for swapping
- Request Swaps: Browse available slots from other students and request swaps
- Manage Requests: Accept or reject incoming swap requests
- View History: Track all your swap requests and their status
SlotSwapper/
├── frontend/ # React frontend
│ ├── src/ # Source files
│ ├── public/ # Static files
│ └── package.json # Frontend dependencies
├── backend/ # Node.js backend
│ ├── server.js # Server entry point
│ └── package.json # Backend dependencies
└── README.md # Project documentation
- Fork the repository
- Create your feature branch (
git checkout -b feature/YourFeature) - Commit your changes (
git commit -m 'Add some feature') - Push to the branch (
git push origin feature/YourFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.