๐ Full-Stack Project Management Dashboard built with Python FastAPI + MongoDB
๐ Live Application: https://milestone-tracker-vq7d.onrender.com/
- Multi-Milestone Tracking: Dynamic progress across all milestones
- 6 Progress States: Ready โ Starting โ Working โ Halfway โ Almost โ Complete
- Advanced Analytics: Timeline view, Quick stats, Performance insights
- Smart Pivot Table: Dynamic grouping & intelligent sorting
- Export Capabilities: Excel, CSV, PDF with one click
- Dark Mode: Toggle for comfortable viewing
- Responsive Design: Mobile-first approach
- Secure Authentication: JWT-based admin access
- Milestone Management: Add/Edit/Delete milestones with custom ranges
- Page Management: Add/Edit question pages with search & filter
- Live Progress Cards: Previous/Current/Overall milestone tracking
- Quick Stats Dashboard: Real-time metrics
- Auto-Detection: Extracts subject/year from URLs
- Smart Algorithm: Dynamic question-to-milestone mapping
- RESTful API: Proper error handling & validation
- MongoDB Integration: Efficient data storage & aggregation
- Auto-Backup System: Daily scheduled backups
- Real-time Updates: Across both interfaces
- Docker Ready: Production-optimized container
- Backend: FastAPI, Uvicorn, Pydantic
- Database: MongoDB Atlas
- Frontend: HTML5, CSS3, Vanilla JavaScript
- Charts: Chart.js
- Deployment: Docker + Render
- Scheduling: APScheduler for automated backups
- Python 3.11+
- MongoDB Atlas account
- Docker (optional)
git clone <repository-url>
cd milestone-tracker# Copy environment template
cp .env.example .env
# Edit .env with your values:
# MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/
# ADMIN_API_KEY=your-secure-api-key
# DATABASE_NAME=tracker_db
# PORT=8000pip install -r requirements.txt# Development
python -m uvicorn app.main:app --reload --port 8000
# Production
python -m uvicorn app.main:app --host 0.0.0.0 --port 8000 --workers 1- Public Dashboard: http://localhost:8000
- API Documentation: http://localhost:8000/docs
- Health Check: http://localhost:8000/health
# Build image
docker build -t milestone-tracker .
# Run container
docker run -p 8000:8000 --env-file .env milestone-tracker# Start services
docker-compose up -d
# View logs
docker-compose logs -f
# Stop services
docker-compose down- Push code to GitHub/GitLab
- Ensure Dockerfile is in root directory
- Go to Render Dashboard
- Click "New" โ "Web Service"
- Connect your repository
- Configure settings:
- Name:
iitian-academy-tracker - Environment:
Docker - Region: Choose closest to your users
- Instance Type:
Starter(free tier)
- Name:
Set these in Render dashboard:
MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/
ADMIN_API_KEY=your-secure-api-key-here
DATABASE_NAME=tracker_db
MILESTONE_DEADLINE=2025-10-17
MILESTONE_CREATED=2025-10-13
TOTAL_QUESTIONS=480
MILESTONE_AMOUNT=30
PORT=8000
- Click "Create Web Service"
- Render will automatically build and deploy
- Access your app at
https://your-app-name.onrender.com
- Visit the deployed URL
- View real-time progress and statistics
- Browse pages table with search/filter
- Monitor performance insights
- Auto-refresh every 30 seconds
- Click "Admin Panel" button
- Toggle admin mode to see:
- Add new page form
- Update/Delete buttons on pages
- Additional controls
- Enter admin mode
- Fill out "Add New Page" form:
- Page Name (required)
- Page Link (optional)
- Total Questions (required)
- Status (Pending/In Progress/Completed)
- Admin API Key (required)
- Click "Add Page"
- Click "Update" button on any page
- Enter new completed questions count
- Provide admin API key
- Click "Update Progress"
- Status automatically updates based on completion
{
"_id": "ObjectId",
"page_name": "string",
"page_link": "url (optional)",
"total_questions": "integer",
"completed_questions": "integer",
"status": "Pending|In Progress|Completed",
"created_at": "datetime",
"updated_at": "datetime"
}{
"total_questions": 480,
"completed_questions": 250,
"remaining_questions": 230,
"progress_percentage": 52.08,
"total_pages": 15,
"completed_pages": 5,
"pending_pages": 7,
"in_progress_pages": 3,
"deadline": "2025-10-17",
"days_remaining": 1
}- All write operations require
X-API-Keyheader - Admin API key stored securely in environment variables
- Rate limiting and input validation
- MongoDB connection uses SSL/TLS
- Environment variables for all sensitive data
- CORS middleware configured for security
- Input sanitization and validation
The system automatically calculates:
- Average Daily Rate: Questions completed per day
- Estimated Completion: Projected completion date
- Performance Trend: On Track / Slightly Behind / Behind Schedule
- Recommendations: AI-generated suggestions based on progress
- Daily backups at 2 AM server time
- Triggered after each data update
- Stored in
/backups/directory - JSON format with timestamp
{
"backup_timestamp": "2025-10-16T10:30:00Z",
"pages": [...],
"summary": {...}
}# Via API (Admin only)
curl -X POST "https://your-app.onrender.com/api/backup" \
-H "X-API-Key: your-admin-key"Edit /static/styles.css:
- Update CSS variables in
:root - Modify color scheme and branding
- Adjust responsive breakpoints
Update environment variables:
PROJECT_NAME- Dashboard titleMILESTONE_DEADLINE- Project deadlineTOTAL_QUESTIONS- Expected total questions
1. MongoDB Connection Failed
# Check connection string format
MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/database?retryWrites=true&w=majority
# Verify network access in MongoDB Atlas
# Whitelist IP: 0.0.0.0/0 for cloud deployment2. API Key Authentication Error
# Ensure API key matches exactly
# Check header format: X-API-Key: your-key-here3. Docker Build Issues
# Clear Docker cache
docker system prune -a
# Rebuild image
docker build --no-cache -t milestone-tracker .4. Render Deployment Fails
- Check build logs in Render dashboard
- Verify environment variables are set
- Ensure Dockerfile is in repository root
# View application logs
docker-compose logs -f milestone-tracker
# Check health endpoint (Local)
curl http://localhost:8000/health
# Check health endpoint (Production)
curl https://milestone-tracker-vq7d.onrender.com/health
# Monitor MongoDB Atlas
# Use built-in Atlas monitoring dashboardProduction Application: https://milestone-tracker-vq7d.onrender.com/
- ๐ Dashboard: https://milestone-tracker-vq7d.onrender.com/
- โ๏ธ Admin Panel: Click "Admin Panel" button on dashboard
- ๐ API Docs: https://milestone-tracker-vq7d.onrender.com/docs
- ๐ Health Check: https://milestone-tracker-vq7d.onrender.com/health
- Platform: Render (Free Tier)
- Auto-Deploy: Enabled via GitHub Actions
- Uptime: Keep-alive workflow (pings every 14 minutes)
- Database: MongoDB Atlas
For issues with this tracker:
- Check the troubleshooting section above
- Review application logs
- Verify environment configuration
- Test API endpoints using
/docs
- Email Notifications: Automated progress alerts
- Advanced Analytics: Detailed progress charts
- Multi-Project Support: Track multiple milestones
- Integration APIs: Connect with project management tools
- Mobile App: Native iOS/Android application
This project is created for IITian Academy milestone tracking. All rights reserved.
Live URL: milestone-tracker-vq7d.onrender.com
Made with โค๏ธ for IITian Academy