- Project Overview
- Solution Summary
- 2.1 Scope
- 2.2 Assumptions
- 2.3 Dependencies
- 2.4 Risks
- Schematic Diagram
- System Design
- 4.1 Proposed Design
- 4.2 Component Inventory
- Database Design
- 5.1 Data Model
- 5.2 Tables Structure
- App Implementation
- Drawbacks and Future Scope
The Todo List Web-Application is a C# project designed to streamline and manage the day-to-day tasks of people. This project aims to provide end users various functionalities, allowing them to access and manage their tasks effectively which would increase their overall productivity.
This Web-Application will allow users to login using their usernames and passwords. To make the App more secure, user authentication could be added. Every user will have their own Todo Lists, be it for work, home, gym, etc. Each list would comprise of various tasks, and each task would have multiple activities which would need to be completed by the user.
Using this Web-App, users will be able to perform basic CRUD operations. They will be able to add, update, delete, organize their tasks in different categories and prioritize them based on level of importance. This App will also allow use of images in place of plain text for different tasks. Pagination has been implemented to display few data at a time to avoid cluttering UI.
By implementing the Todo List Web-Application, the project aims to enhance the productivity and efficiency of people completing their day-to-day tasks. It eliminates the need of manual paper-based record keeping and provides a user-friendly interface. With features like task creation, scheduling and prioritization, this project offers a comprehensive solution for maintaining an organized and effective task management environment.
The scope of Todo List Web-Application encompasses the development of a comprehensive application using C# on .NET Framework. The project aims to assist people in effectively managing their day-to-day tasks. The application will provide a range of features and functionalities to enhance user experience.
The project scope includes the following aspects:
- View and Delete users as per need
- Search users based on their usernames
- See upto 5 user details per page with the help of paged lists
- Create a new Account having a unique username
- Form Validations in place to verify user details
- Only 1 admin is available for the application
- Create Todo Lists for different requirements
- Manage Tasks and track progress completion
- Create various activities as a checklist
- Establish and maintain a robust backend database
- Entity Framework used for Code-Based migrations
- Ensure data consistency, integrity and security
- User-Friendly and interactive interface for people to interact with the app
- Design intuitive views and forms for users
- Implement functionalities such as search, sort for better accessibility
- The Application assumes that only 1 admin exists to manage the users and that the admin creates the first account on the application to prevent any user from registering themselves as an admin
- Admin can only view and delete users from the system but cannot edit their details
- The application runs smoothly in a production environment and is able to handle high loads and scale as per requirement
- All the details of a user i.e. their to-do lists, tasks and checklists are deleted if they delete their account or are removed by the admin
- If an admin deletes their account, then the next person registering must be a replacement for admin to prevent regular users registering themselves as admin
-
Database Management System: The system relies on a robust and reliable database management system (DBMS) to store and manage data related to users, lists, tasks and activities. Microsoft SQL Server is chosen as the ideal DBMS and is created using Entity Framework’s Code-Based Migrations.
-
Database Connectivity: The project relies on a database connectivity layer to establish a connection with the database management system. In ASP.NET, this is typically achieved using ADO.NET or an ORM (Object-Relational Mapping) framework such as Entity Framework.
-
Backend Framework: The development of the Todo List Web-App requires a suitable backend framework like ASP.NET or ASP.NET Core using C# programming language. The framework provides the necessary tools and libraries to handle data processing, business logic, and integration with the database.
-
Frontend Technologies: The frontend of the system relies on web technologies like HTML, CSS, and JavaScript, Bootstrap, jQuery, etc. to create a user-friendly interface. All the UI views are written and rendered using the powerful ASP.NET MVC Razor syntax to facilitate interaction with the back-end.
-
Development Tools and IDE: The development of Todo List Web-Application relies on tools and integrated development environments (IDEs) like Visual Studio, Visual Studio Code, or JetBrains Rider, which provide necessary features for coding, debugging, and project management. Visual Studio was selected as the ideal choice.
-
Testing Frameworks: Dependencies on testing frameworks, such as NUnit or xUnit for unit testing and Selenium for automated UI testing, ensure the reliability and quality of the system through comprehensive testing.
-
Data Security Risks: As the system involves the storage and management of sensitive information of member details, there is risk of data breaches, unauthorized access, or data loss. Proper security measures, such as encryption, secure authentication, and regular backups, should be implemented to mitigate these risks.
-
Technical Challenges: Developing a comprehensive task management system requires handling complex functionalities, integrating various components and ensuring smooth communication between the front-end and back-end. Technical challenges may arise during development, such as compatibility issues, performance bottlenecks, or software bugs. Proper testing and continuous monitoring should be carried out to identify and resolve these challenges.
-
User Acceptance and Adoption: The success of Todo List Web-Application depends on its adoption and acceptance by end-users. There may be resistance to change or a learning curve for users transitioning from manual or legacy systems. Adequate training, user feedback, and user interface design considerations should be incorporated to address these challenges and ensure smooth user adoption.
-
Requirement Changes and Scope Creep: Throughout the project lifecycle, there is a possibility of evolving requirements, changes in client expectations, or scope creep. These changes can impact project timelines, budgets, and overall project success. Effective communication, proper requirement analysis, and change management processes should be in place to handle and accommodate these changes without compromising the project's objectives.
-
Integration and External Dependencies: The Todo List Web-Application might require integration with external systems or APIs for functionalities such as Image search, premium services or authentication services. Any issues with these integrations, changes in third-party APIs, or service disruptions can pose risks to the project's functionality and timelines. Thorough testing, monitoring, and proactive communication with external providers are essential to mitigate these risks.
-
Scalability and Performance: As the System grows and handles a larger volume of data and users, scalability and performance can become critical factors. Inefficient database queries, inadequate server resources, or architectural limitations can impact the system's performance and responsiveness. Regular performance testing, capacity planning, and optimization efforts should be undertaken to ensure the system can handle increasing demands.
-
Project Management Risks: Effective project management is crucial for the successful delivery of the Online Library Management System. Risks such as project delays, budget overruns, resource constraints, or miscommunication between project stakeholders can impact the project's outcome. Adequate project planning, risk assessment, regular monitoring, and proactive communication can help mitigate these risks.
A schematic, or schematic diagram, is a representation of the elements of a system using abstract, graphic symbols rather than realistic pictures. It gives an overview of overall system.
Todo List Web-Application is a multi-user system. Hence for each user registration and login is required at the start of application. Model classes are used to store the type of data and relationship between them. Users will see different views rendered by the controller after model binding takes place. The different views that user can interact within the system are:
- Home Page containing information about the application
- New User Registration
- User/Admin Login
- View, Update or delete account information
- Create Lists containing various tasks and activities
- Manage tasks and activities effectively using checklist and prioritize them
- Addition of Images as Tasks is possible
- Track % completion of tasks and activities
To control the flow of the system, different controllers will be present for each of the model classes. They are:
- Home controller
- User controller/Admin Controller
- TodoList controller
- Task controller
- TaskActivities controller
The Todo List Web-Application using ASP.NET MVC architecture.
- For view that is top layer (user interface, web)
- For control flow that is middle layer (domain models)
- For business implementation that is bottom layer (persistence)
- Connection to the database is done using Code First approach
- There is only 1 Admin to monitor the application. In future, additional admins can be created to better handle the users.
- Scheduling can be implemented based on which mails can be triggered to end-users. This will notify them regarding the status of their tasks/activities.
- Functionality to reset passwords can be implemented. Currently, if the user forgets their password, it has to be looked up in DB.
- UI can be improved significantly to achieve simultaneous tasks in a single page through AJAX calls. Bootstrap's card layout can be utilized to make the Todo Lists look more compact.
- The application can be run in local currently, since it has not been deployed on a server.