We are a team of computer engineers targeting to provide a better experience within digital education. As a result of the prevailing pandemic, the majority of the students, especially college students, are taking online courses. The change in the delivery format made the courses harder to follow, there are more assignments, due dates and tests. In the past, for group assignments, members would like to meet offline and decide the work allocation. However, at present, these all need to be moved online.
This has inspired us to create the Why no plan application. The project allows groups to work together, create and share tasks. We also added functions of face recognition to make sure that the group members are present every time they sign in. Besides, to protect the ideas made from the group, face recognition would help to protect your account and privacy.
What it does
Registration: Targeted at group tasks, we provide registration for the group members. You need to upload or take a photo of yourself, setting passwords and confirm your position in the group. We provide a database to record all the information on the team.
Two-stage login: To ensure the privacy of your account, we ask for your username and password in the first stage of login, similar to many real-life applications. The second stage of login is to detect your face from the webcam and ensure that you are the person you should be.
To-do list: After the login process, you are now able to enter the main part of the project. This is the place you are able to add, finish and share tasks. For a group leader, when creating a task, you can either leave it for yourself or broadcast it to all the members. An asterisk will appear before the name of all the tasks broadcasted by the group leader. For all other users, you can only create tasks for yourself for the first time.
For all users, you are able to mark your work finished, check all the deadlines today and sort them in due date order. You can check the detailed descriptions of the tasks and even share them with any of the group members once if you are feeling working alone may not be the best option.
We also added some interesting functions to this application. You can change the colour of the interface and drawing a painting for today.
How I built it
We used python, SQL, OpenCV and Tkinter as the GUI. We divided this project into three stages and realize them stage by stage. We also added features to the interface after we finished all basic functions to make the project more interesting.
Challenges I ran into
It is the first time that our group construct a project solely using Python even though we have learnt it before. This is a huge challenge to apply what we learnt into a real-world application. Face recognition is a critical part of our project and we had trouble with understanding the library and using it. The accuracy of face recognition is not very high firstly, so we spent lots of time to improve and make it the current version.
Accomplishments that I'm proud of
As stated above, it is the first Python project we made. The use of libraries is also unfamiliar to us. We are proud of ourselves to construct such a project within the 24-hour limit and able to realize all the functionalities proposed by us before we started coding.
What I learned
- The install and use of many Python libraries
- Using certain software engineering workflow to help us better organize group work
- Create ideas, propose plans and then realize ideas into a real project
What's next for Why no plan
Improve the face recognition part
- Currently, we are only using 2D photos for the face recognition part. We are proposing to use 3D models for the recognition to perform better accuracy. We also want to add detection techniques that distinguish from photos and videos to ensure that you, the real person, are present, not your photo.
Better GUI design for usability
- Currently, our GUI interface is still in the basic format, with buttons and layers of pop-ups. We want to improve in the future to make the user interface perform better in terms of usability. Reduce the number of pop-ups and better aesthetical performance.