A modern, full-stack task management solution built with Django and MongoDB
Features β’ Demo β’ Installation β’ Tech Stack β’ Contributing
- Overview
- Features
- Screenshots
- Tech Stack
- Architecture
- Installation
- Usage
- API Documentation
- Roadmap
- Contributing
- License
- Author
Task Manager is a production-ready web application designed to streamline personal and team productivity. Built with modern web technologies, it offers a seamless experience for creating, organizing, and tracking tasks with enterprise-grade security and scalability.
- π Secure Authentication - Built on Django's robust authentication system
- π High Performance - Leveraging MongoDB's NoSQL capabilities for fast data operations
- π± Responsive Design - Beautiful UI that works flawlessly across all devices
- π¨ Modern Interface - Clean, intuitive design with Tailwind CSS
- π Data Isolation - Complete privacy with user-specific task management
- User registration with validation
- Secure login/logout functionality
- Session-based authentication
- Protected routes with
@login_requireddecorator - Password encryption and secure storage
- Full CRUD Operations - Create, Read, Update, and Delete tasks effortlessly
- Rich Task Attributes - Title, description, priority levels, and due dates
- Status Tracking - Toggle between Completed and Pending states
- Priority Levels - Low, Medium, and High priority classification
- Bulk Operations - Clear all completed tasks in one click
- Real-time Statistics - Live counters for total, pending, and completed tasks
- Smart Filtering - Filter by status (All, Pending, Completed) and priority (High)
- Visual Indicators - Color-coded priority badges and status markers
- Progress Tracking - Monitor task completion rates at a glance
- Responsive Design - Optimized for desktop, tablet, and mobile devices
- Modern UI - Gradient accents and smooth transitions
- Toast Notifications - Instant feedback for all user actions
- Intuitive Navigation - Clean, user-friendly interface
Secure Login Interface |
User Registration |
Analytics Dashboard |
Task Management Interface |
MongoDB Compass - Database View
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | HTML5, Tailwind CSS, JavaScript | Responsive UI with modern styling |
| Backend | Django 5.0, Python 3.10+ | RESTful API and business logic |
| Database | MongoDB 4.4+ | NoSQL document storage for tasks |
| Authentication | Django Auth + SQLite | User management and sessions |
| Driver | PyMongo | MongoDB integration |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Client Browser β
β (HTML/CSS/JS) β
ββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β HTTP/HTTPS
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Django Backend β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β Views β β Middleware β β Forms β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
ββββββββββββββ¬βββββββββββββββββββββββββββββββββ¬ββββββββββββ
β β
βΌ βΌ
ββββββββββββββββββββββββββ ββββββββββββββββββββββββββ
β SQLite Database β β MongoDB Database β
β (User Auth/Sessions) β β (Task Documents) β
ββββββββββββββββββββββββββ ββββββββββββββββββββββββββ
- Hybrid Database Approach - SQLite for Django authentication, MongoDB for task data
- Direct PyMongo Integration - No ORM overhead for maximum performance
- RESTful API Design - Clean separation between frontend and backend
- Session-based Authentication - Secure user sessions with Django middleware
Before you begin, ensure you have the following installed:
- Python 3.10 or higher - Download Python
- MongoDB Community Server - Download MongoDB
- Git - Download Git
- pip (Python package manager)
git clone https://github.com/yourusername/task-manager.git
cd task-managerWindows:
python -m venv venv
venv\Scripts\activatemacOS/Linux:
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txtEnsure MongoDB is running on your system:
# Check if MongoDB is running
mongoshUpdate config/settings.py if needed:
# MongoDB Configuration
MONGODB_URI = "mongodb://localhost:27017"
MONGODB_NAME = "task_manager_db"python manage.py makemigrations
python manage.py migratepython manage.py createsuperuserFollow the prompts to create an admin account.
python manage.py runserverπ Success! Open your browser and navigate to:
- Register an Account - Create your user profile
- Login - Access your personal dashboard
- Create Tasks - Add tasks with title, description, priority, and due date
- Manage Tasks - Update status, edit details, or delete tasks
- Filter & Organize - Use filters to focus on specific task categories
- Track Progress - Monitor your productivity with dashboard statistics
// Example task structure
{
"title": "Complete Project Documentation",
"description": "Write comprehensive README and API docs",
"priority": "High",
"due_date": "2024-12-31",
"status": "Pending",
"user_id": "user@example.com"
}| Method | Endpoint | Description |
|---|---|---|
| POST | /register/ |
Create new user account |
| POST | /login/ |
Authenticate user |
| GET | /logout/ |
End user session |
| Method | Endpoint | Description |
|---|---|---|
| GET | /tasks/ |
Retrieve all tasks |
| POST | /tasks/create/ |
Create new task |
| PUT | /tasks/<id>/update/ |
Update existing task |
| DELETE | /tasks/<id>/delete/ |
Delete task |
| POST | /tasks/<id>/toggle/ |
Toggle task completion |
- π·οΈ Task categories and custom tags
- π§ Email verification and notifications
- π― Drag-and-drop task reordering
- π₯ Team collaboration features
- π± Progressive Web App (PWA) support
- π³ Docker containerization
- π Advanced analytics and reporting
- π Task recurring/repetition
- πΎ Export tasks to CSV/PDF
- π Dark mode theme
- Mobile native applications (iOS/Android)
- Integration with calendar services
- AI-powered task suggestions
- Real-time collaboration with WebSockets
Contributions are what make the open-source community amazing! Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow PEP 8 style guide for Python code
- Write meaningful commit messages
- Add comments for complex logic
- Update documentation for new features
- Test thoroughly before submitting PR
Distributed under the MIT License. See LICENSE file for more information.
Vivek
- GitHub: @VivekGhule
- LinkedIn: vivekghule7
- Email: vivekghule777@gmail.com
- Django Documentation
- MongoDB Documentation
- Tailwind CSS
- Font Awesome for icons
- All contributors who help improve this project
Built with β€οΈ using Django and MongoDB



