Project Proposal: Task Master - A Distributed To-Do List Application
INTRODUCTION
Task Master is a productivity application designed to help users organize and track their tasks using timers
and priority settings. Originally built as a desktop-based solution, this proposal focuses on transforming the
application into a distributed database system. This transformation aims to provide scalability, multi-user
support, data availability, and fault tolerance, key features in modern systems. By implementing distribution
concepts such as replication, fragmentation, and consistency maintenance, this project serves as an
excellent academic and practical exploration of distributed database systems.
NEEDS/PROBLEMS
Traditional task management applications that use centralized databases suffer from several issues:
- Inaccessibility across multiple devices
- High risk of single-point failure
- No multi-user collaboration
- Limited scalability
A distributed database system addresses these issues by distributing data across multiple nodes, improving
access speed, and ensuring reliability.
GOALS/OBJECTIVES
The main objectives of the distributed version of Task Master are centered around implementing an
advanced task notification system:
1. **Notification-Based Task Management**:
- Enable users to receive task reminders through multiple channels, ensuring no deadline is missed.
- Provide options to customize the type and frequency of notifications for each task.
Project Proposal: Task Master - A Distributed To-Do List Application
2. **Multi-Channel Notification System**:
- **Email Notifications**: Integrate SMTP or APIs like SendGrid to send task reminders and daily
summaries directly to the user's inbox.
- **Push Notifications**: Implement in-app alerts using service workers or Firebase Cloud Messaging (FCM)
for real-time updates.
- **Voice Call Alerts**: Use APIs like Twilio to make automated voice calls for critical or high-priority tasks
(simulated in the project).
3. **Distributed Database Integration**:
- Design a distributed database architecture to store user and task data across multiple servers.
- Apply horizontal fragmentation by `user_id` for task distribution.
- Ensure replicated user data for seamless notification access and synchronization.
4. **Real-Time Synchronization & Access**:
- Maintain data consistency across all distributed nodes using eventual or strong consistency models.
- Ensure users can access and manage their tasks from different locations and devices concurrently.
5. **Secure and Scalable Access**:
- Implement secure login and role-based access controls.
- Ensure the system can scale to handle many users without performance degradation.
PROCEDURES/SCOPE OF WORK
The project will follow these procedures:
1. Analyze the local version of Task Master
2. Design a distributed database schema using MySQL or Firebase
Project Proposal: Task Master - A Distributed To-Do List Application
3. Apply fragmentation (horizontal/vertical) strategies
4. Implement backend changes using Flask
5. Conduct testing under simulated distributed conditions
6. Evaluate system for consistency, availability, and performance
TIMETABLE
The development timeline is structured as follows:
- Week 1: Requirements analysis and planning
- Week 2: Distributed schema design and modeling
- Week 3: Backend development and integration
- Week 4: Testing and validation
- Week 5: Documentation, final report, and presentation
GANTT CHART
A visual representation (Gantt chart) of project timeline:
Task | Week 1 | Week 2 | Week 3 | Week 4 | Week 5
----------------------------|--------|--------|--------|--------|--------
Requirement Analysis | X | | | |
Database Design | | X | | |
Backend Development | | X | X | |
Testing | | | X | X |
Documentation & Presentation| | | | X | X
BUDGET
Project Proposal: Task Master - A Distributed To-Do List Application
This project utilizes free and open-source tools, so the monetary budget is minimal. All development will be
carried out using:
- MySQL Community Edition (Free)
- Firebase Free Tier (for testing)
- Python, Flask, HTML, CSS, JavaScript
- GitHub for collaboration
Total Estimated Cost: 0 BDT
KEY PERSONNEL
Team Lead: Sanjida Ahmed - Database Design & Backend Logic
Frontend Developer: [Name] - Interface Design, User Experience
Tester & Document Writer: [Name] - Testing and Final Reporting
Advisor: [Teacher's Name] - Academic Supervision and Evaluation
EVALUATION
The project will be evaluated based on the following criteria:
- Functionality of the distributed database system
- Ability to handle concurrent users and real-time access
- Correct implementation of fragmentation and replication
- System performance and fault tolerance
- Quality of final report and presentation
Conclusion
This project will result in a distributed version of Task Master that supports modern demands of multi-user
access, scalability, and resilience. It provides practical exposure to distributed database concepts and
Project Proposal: Task Master - A Distributed To-Do List Application
demonstrates how academic learning can be translated into real-world applications.