| 11 Feb 2022 |
Framework Selection |
Selection the framework that the backend will build on |
Fundamental |
2 day |
Finished |
Initially chose Flask, but seems Fast API is more "modern" therefore better performance |
| 12 Feb 2022 - 14 Feb 2022 |
Learning and Experiment with the basics |
Make the mock server up and running |
Fundamental |
3 day |
Finished |
Acquired a domain and learned how to use Nginx to setup a firewall |
| 15 Feb 2022 - 18 Feb 2022 |
Design the datatype |
How we store and structure these data in multiple Database |
Fundamental |
4 day |
Finished |
Also run a simple stress-test on e the server |
| 28 Feb 2022 - 8 Mar 2022 |
Connect to the Database |
How is the query language and firewall working |
Fundamental |
5 day |
Finished |
The DB chosen also based on open-ended which prevent vendor lock-in to certain DB |
| 10 Mar 2022 - 10 Mar 2022 |
More interaction with Database |
Update query |
Fundamental |
1 day |
Finished |
Progress Report Day |
| 14 Mar 2022 - 22 Mar 2022 |
Using multiple database |
Trying to add a SQL database |
Fundamental |
4 day |
Failed |
See Feature Specification for detail |
| 24 Mar 2022 - 2 Apr 2022 |
General Maintenance |
Means no significant functionality added but some improvement |
Fundamental |
8 hours |
Finished |
Modify existing data entry in Database is a pain |
| 3 Apr 2022 - 3 Apr 2022 |
Upload Image |
User will upload image directly to our backend server, but then the backend will send it to an external image hosting service, which is not directly store in our side |
Low |
3 hours |
Finished |
The free tier should be enough |
| 4 Apr 2022 - 7 Apr 2022 |
Visilibity and Ownership attribute for CalendarEvent |
Allow multiple user see and edit the same Calendar Event, with permission control for each individual |
Fundamental |
4 hours |
Finished |
Why I didn't thinking this at the beginning |
| 30 Apr 2022 - 30 Apr 2022 |
Delete CalendarEvent |
Delete the CalendarEvent and remove it from the index; reuse HTTP client so can reduce time use on route that makes multiple database queries |
Fundamental |
2 hours |
Finished |
Time improvement vary, still largely depend on the service provide |
| 9 May 2022 - 10 May 2022 |
Login and Logout |
basic token issuance and deletion |
Fundamental |
2 Hours |
Finished |
Using person_id as account name |
| 10 May 2022 - May 2022 |
Containerize |
Let the backend run in container |
Mid-High |
3 Hours |
Started |
Possible makes update easier, but require some learning and investigation |
| 10 May 2022 - 11 May 2022 |
Redesign UserProfile Schema |
The current one having some overhead (not very essential elements) and lacking space to place some important elements |
Critical |
1.5 Hours |
Finished |
Right now is not too late to do this because we will accept user registration soon |
| 11 May 2022 - 11 May 2022 |
Query multiple CalendarEvent at once |
To reduce the overhead of validating token every time and save numbers connection/requests the client need to make |
High |
2 Hours |
Finished |
Would be nice to do some benchmarks before and after |
| 12 May 2022 - 12 May 2022 |
Edit CalendarEvent |
Modify existing CalendarEvent instead of delete and re-create |
High |
2 hours |
Finished |
Another essential functionality |
| 13 May 2022 - 13 May 2022 |
User Registration |
Easily create account |
Fundamental |
3 Hours |
Planned |
Didn't implemented in early stage to avoid massive amount of breaking changes |
| 12 May 2022 - 12 May 2022 |
Profile page customizable |
To actually modify everything on the profile page related |
High |
2 Hours |
Finished |
Part of the registration process |
| 16 May 2022 - 17 May 2022 |
Change password |
Security |
Medium |
2 Hours |
Finished |
Should revoke all existing session/token when password changed? |
| 19 May 2022 - May 2022 |
Token or Session expiration |
Things don't last forever |
High |
3 Hours |
Planned |
Maybe along with functionality to manage all token under the account |
| 17 May 2022 - May 2022 |
V2 Endpoint |
and use the APIRouter to split the program into multiple file |
Medium |
11 Hours |
Finished |
See Feature Specification for detail |
| 18 May 2022 - May 2022 |
Captcha |
Generate image for human verification |
Low |
3 Hours |
Started |
See Feature Specification for detail |
| 20 May 2022 - May 2022 |
User deletion and information cleanup |
Created lots of token and account for testing purpose |
High |
3 Hours |
Finished |
Database manipulation not ACID yet |
| 20 May 2022 - May 2022 |
Improve Performance |
Use using native pymongo database connector |
High |
4 Hours |
Finished |
Requires access to non-HTTP port |
| 24 May 2022 - 25 May 2022 |
Time-based OTP |
Use with Authenticator app on mobile phone |
Low |
4 Hours |
Finished |
Much more cool and secure than using plain password and potential for future 2FA |
| 24 May 2022 - May 2022 |
GitHub OAuth Signin |
Using their github account to verify identity, without need to typing anything |
Low |
6 Hours |
Started |
Requires lots of research and investigation upfront and coordination with frontend |
| 27 May 2022 |
Fix Databased Name |
Some collection name update on database-side but not in the code |
Critical |
1 Hour |
Finished |
Need a more convenience way to update this |
| 27 May 2022 - 27 May 2022 |
Remove old endpoint and add more specific tag |
Bye-Bye V1 |
Medium |
2 Hour |
Finished |
|
| June 2022 |
User's contact list |
To share the event easily |
Medium |
Hours |
Planned |
Need lots of research |
| 31 May 2022 - 31 May 2022 |
Accept HTML Form |
the builtin form in HTML is tricky to use |
Critical |
2 Hours |
Finished |
|
| 7 June 2022 |
Add comments |
explain why I wrote these code |
Citical |
2 Hours |
Started |
|