TodoIt is a powerful, real-time Todo List web application built with the MERN stack and integrated with Google & GitHub OAuth, task sharing, and real-time updates via Socket.IO.
- Frontend: https://todoit.vercel.app
- Backend: https://todoit-vv91.onrender.com
- Frontend: React, Vite, Axios, Socket.IO - client
- Backend: Node.js, Express, MongoDB, Mongoose, Passport.js, JWT, Socket.IO
- OAuth: Google & GitHub login using Passport strategies
- Deployment: Vercel (Frontend), Render (Backend)
- π Google & GitHub OAuth Login
- π Create, Read, Update, Delete, and Filter Tasks
- π₯ Share tasks with other users by email
- π Search and Priority-based filtering
- π Due Date Tracking
- β‘ Real-time sync using Socket.IO
- π± Responsive design
- π§ User avatar with dropdown & logout
- π¨ Styled with modern CSS
TodoIT
βββ client/ # React frontend (Vite)
βββ server/ # Express backend
βββ README.md # This file
- Clone the repository:
git clone https://github.com/Pradeep5377/TodoIT
cd TodoIT- Frontend Setup (
client/):
cd client
npm install- Backend Setup (
server/):
cd ../server
npm install- Environment Variables:
Create two .env files:
- In
client/.env:
VITE_BACKEND_URL=https://todoit-vv91.onrender.com- In
server/.env:
PORT=5000
MONGO_URI=your_mongodb_connection_uri
JWT_SECRET=your_jwt_secret
CLIENT_URL=https://todoit.vercel.app
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
GITHUB_CLIENT_ID=your_github_client_id
GITHUB_CLIENT_SECRET=your_github_client_secret- In Google Cloud Console & GitHub Developer Settings:
- Authorized redirect URIs:
https://todoit-vv91.onrender.com/auth/google/callback https://todoit-vv91.onrender.com/auth/github/callback - Add respective client IDs and secrets to your
.envfile.
- Authorized redirect URIs:
Start Backend:
cd server
npm startStart Frontend:
cd client
npm run dev- Build Command:
npm install - Start Command:
node index.js - Root Directory:
server
- Build Command:
npm run build - Output Directory:
dist - Root Directory:
client
This project was developed as part of the Katomaran Full Stack Hackathon challenge.