A modern, full-stack task management platform with real-time collaboration, Google OAuth, and a beautiful UI.
- 🔒 Google OAuth Authentication — Secure login with Google
- 📝 Task Management — Create, edit, delete, and share tasks
- 👥 Collaboration — Real-time updates and sharing with team members
- 📊 Dashboard & Analytics — Visualize your productivity
- ⚡ Live Updates — Powered by Socket.io
- 📱 Responsive UI — Built with React 19 & Tailwind CSS
- 🛡️ Security — JWT, rate limiting, input validation, CORS
- 📧 Email Notifications — Stay updated on task changes
- Frontend: React 19, Tailwind CSS, React Router, Axios, Socket.io-client
- Backend: Node.js, Express.js, MongoDB (Mongoose), Socket.io, JWT, Google OAuth
- Deployment: Vercel (frontend), Railway (backend)
taskflowhub/
├── backend/ # Express.js API, MongoDB, Socket.io
│ └── src/
│ ├── config/
│ ├── controllers/
│ ├── middlewares/
│ ├── models/
│ ├── routes/
│ ├── services/
│ ├── sockets/
│ ├── utils/
│ ├── app.js
│ └── server.js
└── frontend/ # React 19, Tailwind CSS, Socket.io-client
└── src/
├── components/
├── contexts/
├── App.jsx
├── index.jsx
└── index.css
git clone https://github.com/YOUR_USERNAME/taskflowhub.git
cd taskflowhub- Node.js v16+
- MongoDB Atlas account
- Google OAuth credentials
cd backend
npm installEnvironment Variables (set in Railway dashboard):
| Variable | Description |
|---|---|
MONGODB_URI |
MongoDB connection string |
JWT_SECRET |
JWT signing secret |
GOOGLE_CLIENT_ID |
Google OAuth client ID |
GOOGLE_CLIENT_SECRET |
Google OAuth client secret |
FRONTEND_URL |
Your Vercel frontend URL |
Start locally:
npm run dev- Node.js 18+
- Backend server running
cd ../frontend
npm installEnvironment Variables (set in Vercel dashboard):
| Variable | Description |
|---|---|
REACT_APP_API_URL |
Backend API URL (e.g. https://your-backend.up.railway.app/api) |
REACT_APP_GOOGLE_CLIENT_ID |
Google OAuth client ID |
Start locally:
npm startApp runs at http://localhost:3000
- Go to Google Cloud Console
- Create OAuth 2.0 credentials
- Add these to Authorized JavaScript origins:
http://localhost:3000https://your-app.vercel.app
- Copy the Client ID and Secret to your Railway and Vercel environment variables
Base URL:
https://your-backend.up.railway.app/api
Authentication
POST /auth/google— Login with Google OAuthPOST /auth/refresh— Refresh JWT tokenGET /auth/profile— Get user profilePOST /auth/logout— Logout
Tasks
GET /tasks— List tasksPOST /tasks— Create taskGET /tasks/:id— Task detailsPUT /tasks/:id— Update taskDELETE /tasks/:id— Delete taskPOST /tasks/:id/share— Share taskGET /tasks/stats— Task statistics
Users
GET /users/profile— Get profilePUT /users/profile— Update profile
- Backend:
npm test(Jest, Supertest) - Frontend:
npm test(React Testing Library)
- Push to GitHub, connect to Railway, set environment variables, deploy.
- Push to GitHub, connect to Vercel, set environment variables, deploy.
MIT License — see LICENSE
- Express.js, MongoDB, Socket.io, React, Tailwind CSS, Google Cloud, and all contributors.