A Web App functioning as a biosecurity guide, providing information on animal pests present in New Zealand.
It provides management functions. As an administrator, you can manage the guides and user information in the system. Management functions include adding, modifying, deleting, and querying guides and user profiles.
As a general staff, you can manage guides and view Controller users.
As a Controller user, you can view all Guide information, including lists and details.
- Python
- Flask
- Jinja
- MySQL
- HTML
- Bootstrap
- CSS
Please click here to its Homepage.
Access Account
| Username | Password | Role |
|---|---|---|
| controller1 | Admin@123 | Pest Controller |
| controller2 | Admin@123 | Pest Controller |
| controller3 | Admin@123 | Pest Controller |
| controller4 | Admin@123 | Pest Controller |
| controller5 | Admin@123 | Pest Controller |
| staff1 | Admin@123 | Staff |
| staff2 | Admin@123 | Staff |
| staff3 | Admin@123 | Staff |
| admin | Admin@123 | Administrator |
1. Blueprint Design Strategy
The internal design of the software takes into account the sub-file management back-end Python programme.
All the backend code in one py file can lead to long files. It is not very readable, and it is not easy to maintain.
Therefore, I split the most of Administrator role code into admin.py, while keeping the rest of the functional code in app.py file.
For future consideration, I'll be looking to split the Staff related functions into a staff.py file as well.
Adopted Flask's Blueprint design strategy and framework.
2. Colour Scheme
The overall colour scheme is considered to be royalblue, white and black.
Royalblue is a mild and calm colour, easy to be accepted by most people. And it is also my favourite colour. So royalblue is used as the colour of the title, navigation bar and buttons.
The table data is more serious content, so black is more appropriate. It also creates a colour contrast.
3. All users with different roles in one profile database table.
Two reasons for this design:
First, there are only three role types, which is not a strong enough reason to split the table.
Secondly, the roles can be distinguished by the Department field. For example, the Controller user is assigned to the Controller department. This would consolidate all users into one table, which would help development efficiency.
However, it is worth noting that if the number of user roles increases, it is still necessary to split the user roles into separate tables.
4. Image Storage Solution.
In order to reduce the size of the application catalogue, I have deliberately stored all the image data in a database.
This solution, my webapp can achieve the same display effect, but also make the program module independent. The data and code are completely separated.
In particular, the security of the image data is taken into account, because the data is stored in its own database completely independently.