Assignment Due

About

This is a project for NewHacks2020 at the University of Toronto. This project aims to create a a TODO like software named Assignment Due that can assign and delete group tasks.

Team JHYC Code

Team Member

Chunsheng Zuo, Yunhao Qian, Guanghan Wang, Xuanze Li

Our team's main objective is to create a software named assignment due that can assign and delete group tasks on an online platform and can support multi-users. The project includes both the interface setup and the setup of the modules written in python behind the screen. In order to reach the following objectives, our team creates a python program that can ask a user's input username and password, assign him to a specific group and give tasks to him and check if he has completed the task or not before the due date. The software is pretty similar to the To-Do list apps that can be download from the App Store some other online app stores. However, we a s a team has discovered that most of the online platform does not have the ability to assign a group to-do list or networking using online operations. Therefore, after careful consideration, our team decided to improve the current to-do list apps and add some additional features in it so that the users can be connected online with each other (multi-user fucntion)and also at the same time has the ability to check for future plans that has not been done yet. For our main project, we developed 5 different modules that is written in python and one main function file. The user's interface setup file is contained within the main.py file so that the user is able to login or register online on our platform. Secondly, our team also developed the back-end functions that can be used to manipulate each user's status within our platform. For starters, we composed the User.py module so that the user's input and their corresponding password can be saved in this module. In order to incorporate the tasks adding and deleting features, we also implement a Task.py module that has the functions to assign each group works and individual works. In addition to that, we classify the tasks based on their attributes. All the tasks are classified into two categories: Deniable and Undeniable. The deniable project means that the tasks that is assigned to the user can be denied and if one person in a group choose to deny the project then the group project is denied. The undeniable project means that the task must be completed before deadline. Each task has a specific content and its due date. And if it is a group project then only one person need to check the task completion mark after completing the project. Each people in a group will be assigned a None at the beginning of the task. The two methods that we implemented within the task.py module are create() and complete(). In the create() method, the task originator will have the ability to set up the task content and its due date. In the complete() function, the task originator will have the ability to remove the task from the task list and its relevant stakeholders' tasks. On top of that, we also create a group module that takes attributes tasks, users and a dictionary that is a list of task. The two method within this module are add_user() and add_task().

To setup the main interface page of our software, we implemented two separate modules called command.py and gui.py. The command.py is a module that aims to provide the text component of the interface and the gui.py is aimed to provide users the graphic representation of the interface page. In command.py module, we implement the functions that can check if a user is within our system. If not , the user will be asked to register in the system, if yes, the user will proceed. Then the main page set up is composed of the main_page(0 function and the signin() function. The user can choose to logician or not depending on their interests. After that, we also implemented the choose_group function which is a feature of letting the users choose whichever group her or she is interested in joining. We also create the create_stack function, which is a feature that can let individuals to create tasks for themselves or for the group as a whole. Then, the function new_group() is implemented to make sure that people can create new_group whenever needed on the interface page. Users can also delete group using the delete_group function. If the group is deleted, the person who delete the group will be asked to quit the group while the others will remain in the group. All but the last, the setting function, including everything we’ve set before in this module, will give the users some options to choose from when they are in the software.

The gui.py module contains the following functions that is used to display the login_page and other pages. The display_login function will display the log in page of the software to ask people to enter their username and password. The display register page function will asks users to display the registration page if they are not within the current system. The register_pressed function will be used once the register button is pressed and it will call the registration function to help the users to register a new account. The display_user_page function will display each user’s own profile page. The logout_pressed function will be used once the logout button is pressed on the screen as it helps the user to logout from their current account. Whenever the group button is pressed, the group information will be displayed. The display_create_group_page will help the user create a new_group page and display it. The create tasks function will help the user create a new task whenever a new project is applied. Then we also implement the display_invite_page function which helps each user to invite other user into the same group. In the end, we implemented the display_task_page which will display the individuals and group task in a separate page.

Built With

Share this project:

Updates