Seiri is a task manager app created using the flask framework and written in python.
- Project Brief
- Product Requirements
- App Design
- Application
- Tech Stack
- Testing
- Risk Assessment
- Latest Updates
- Known Issues
- Future Development
The aim of this project was to create a CRUD web application written in python and using the Flask web microframework. The web application also requires a database with at least two tables showing a one-to-many relationship. This application then needed to be deployed to a cloud server and continuous integration is needed to display knowledge of core DevOps principles and agile methodologies.
During the pre-planning stages of my project I wrote up a very brief software requirements specification before any actual development began.
I later expanded upon this SRS by creating a more in depth product requirements document using the project pages feature on Jira.

The product requirements can be viewed in full here
For my project I decided to create a task manager app that allows users to input new tasks, edit and delete them (CRUD functionality). The app utilises a SQL database with two tables that share a one-to-many relationship as illustrated in the entity relationship diagram below.
Upon connecting to the site the home page provides you with a button to sign up, at this stage all other links will redirect you to the login page and the Logo redirects you back to the homepage. Upon creating an account you will then be able to login and the apps features now become accesible to the user. The website navigation structure is illustrated below.
To plan my project I made use of Jira's scrum boards, to create the application I used Python & Flask whilst Github was my choice of version control system. Google Cloud is the deployment server and for continous integration I used Jenkins.
To keep production seamless I used github webhooks to keep Jenkins and Github integrated and allow for automatic builds to happen upon pushing commits. I also used smart commits to update my Jira sprint.
I made use of pytest and flask-testing to test my app. Unfortunately I had some trouble with the login manager feature and I was unable to work out how to fix this error before the deadline. The coverage is also pretty low sitting at 79% total.
-
10/11/2021:
-
Navbar links all redirect to the login page when user not signed in.
-
Changed users table properties for username and email to both be unique.
-
-
11/11/2021:
- Login button switches to logout when user signed in.
-
12/11/2021:
- Able to edit and delete tasks from other accounts if task id is known by manipulating the url.
- Passwords currently unsafe via HTTP and require HTTPS for end to end encryption.
- Edit tasks function doesn't prefill text with current task name and description.
- Not yet optimized for mobile browsers.
- Stack trace error is thrown when trying to enter duplicate details; needs try/except statements to catch errors and prompt users to input a new username or email.
- Include an SSL Certificate for HTTPS.
- Add a footer to layout.html.
- Improve the dashboard.
- Implement a dark mode feature.
- Flash messaging for login/logout and tasks deleted.
- Add completion dates and check boxes to tasks.
- New table for completed tasks.
- Add account management to allow users to change username/email/password and delete account.



















