A full-stack task management application built with Vue 3, Express, and MongoDB, featuring real-time chat capabilities.
- Node.js (v14 or higher)
- npm
- MongoDB (Community Edition or Docker)
Windows (PowerShell):
.\start.ps1Linux/macOS:
chmod +x start.sh
./start.shThis will automatically:
- Check and start MongoDB (service or Docker)
- Start the backend server on
http://localhost:3000 - Start the frontend server on
http://localhost:5173
- Frontend: http://localhost:5173
- Backend API: http://localhost:3000
- API Documentation: http://localhost:3000/api-docs
Option A: MongoDB Community Edition (Recommended)
- Download from MongoDB Download Center
- Run the installer and choose "Complete" installation
- Install MongoDB as a Service
- Verify:
Get-Service -Name MongoDB(Windows) orsystemctl status mongod(Linux)
Option B: Docker
docker pull mongo:latest
docker run -d -p 27017:27017 --name mongodb mongo:latestFrontend:
cd frontend
npm installBackend:
cd backend
npm installCreate backend/.env:
PORT=3000
MONGODB_URI=mongodb://localhost:27017/utasks
# For local mode (no MongoDB): DB_TYPE=localBackend:
cd backend
npm startFrontend:
cd frontend
npm run dev- Create, edit, and delete boards
- Organize tasks with lists and cards
- Drag-and-drop functionality
- Priority levels and due dates
- Persistent storage with MongoDB
- Private messaging between users
- Real-time message delivery with Socket.IO
- Notification badges for unread messages
- Auto-scroll to latest messages
- Responsive design
- User registration and login
- JWT-based authentication
- Secure password hashing with bcrypt
utasks/
├── frontend/ # Vue 3 + Vite application
├── backend/ # Express + MongoDB API
├── start.ps1 # Windows startup script
└── start.sh # Linux/macOS startup script
cd frontend
npm run buildnpm run lintcd backend
npm test- Persistent data storage
- Requires MongoDB connection
- Set
MONGODB_URIin.env
- In-memory storage
- No MongoDB required
- Set
DB_TYPE=localin.env - Data resets on server restart
Interactive API documentation available at:
http://localhost:3000/api-docs
VS Code + Vue (Official) (disable Vetur)
- Chrome/Edge/Brave: Vue.js devtools
- Firefox: Vue.js devtools
- Sign in with a username
- Click "Chat" in the navigation bar
- Select a user from the connected users list
- Start chatting!
Tip: Open multiple browser windows with different usernames to test real-time messaging.
# Check if MongoDB is running
Get-Service -Name MongoDB # Windows
systemctl status mongod # Linux
# Start MongoDB
Start-Service MongoDB # Windows
sudo systemctl start mongod # Linux- Backend (3000): Check for other processes using port 3000
- Frontend (5173): Check for other Vite dev servers
# Clean install
rm -rf node_modules package-lock.json
npm installISC
GLO-3102 - Team 19