Skip to content

Latest commit

 

History

History
263 lines (153 loc) · 8.44 KB

timelog.md

File metadata and controls

263 lines (153 loc) · 8.44 KB

Timelog

  • A web app for preference-based matching
  • Petros Kitazos
  • 2526547k
  • Professor David F Manlove

Guidance

  • This file contains the time log for your project. It will be submitted along with your final dissertation.
  • YOU MUST KEEP THIS UP TO DATE AND UNDER VERSION CONTROL.
  • This timelog should be filled out honestly, regularly (daily) and accurately. It is for your benefit.
  • Follow the structure provided, grouping time by weeks. Quantise time to the half hour.

Week 1

18 Sep 2023

  • 1 hour meeting with supervisor
  • 0.5 hour formatted meeting minutes and made first draft of project requirements
  • 3 hours planned revised structure for managing allocation spaces and defined all user types

19 Sep 2023

  • 1 hour set up project management on Notion to track issues, progress, plan structure and write docs
  • 2 hours made list of tasks to work on during first week

20 Sep 20223

  • 2 hours explored different options to modify or extend the existing tech stack to better suit my skills and looked at tools that would ensure efficient, and effective development

21 Sep 2023

  • 4 hours outlined high-level changes to be made to the existing project and formed proposal for new tech-stack

22 Sep 2023

  • 0.5 hour initialised project repository
  • 0.5 hour set up project management / issue tracking
  • 1 hour made issues for migrating to new stack

23 Sep 2023

  • 1 hour set up basic API
  • 1 hour tried to solve matchingproblems package installation issue
  • 0.5 hour restructured project directory and set up additional Git repositories
  • 0.5 hour set up web app boilerplate
  • 1 hour configured development environment (editor plugins, packages, deployment, etc.)
  • 0.5 hour generated prisma schema from old database
  • 3 hours built basic ui for publically accessible pages

24 Sep 2023

  • 1 hour redesigned and normalised database and made new ER diagram
  • 1 hour re-wrote prisma prisma to match redesigned ER diagram
  • 1 hour fixed some minor ui bugs and refactored files
  • 2 hours added ORM and basic CRUD operations to site
  • 2 hour polished some UI components
  • 1 hour added Auth middleware and started implementing different user tiers
  • 1.5 hour started implementaion of conditional ui rendering based on user clearance

Week 2

25 Sep 2023

  • 2 hours added site-wide user clearance context for conditionally rendered ui based on user role
  • 1 hour added basic version of preference management

26 Sep 2023

  • 2 hours created comprehensive list of actions grouped by user role to make requirements ranking easier
  • 0.5 hour added linting and refactored project structure for improved dx

27 Sep 2023

  • 2 hours worked on documentation of current progress and changed to be made to platform for next meeting (new sitemap, and second draft of ER diagram)

28 Sep 2023

  • 2 hours worked on making shortlist and preference selection from project page more intuitive

29 Sep 2023

  • 2 hours redesigned initial ER diagram to match updated requirements
  • 1 hour designed new auth flow

30 Sep 2023

  • 0.5 hour created new models for Auth management
  • 4 hours read up on NextAuth to be used as new Authorisation library (watched some tutorials and read docs)

01 Oct 2023

  • 3 hours worked on dev-panel page for testing, running population script, managing user access and testing
  • 2 hours started adding NextAuth to application

Week 3

02 Oct 2023

  • 2 hours worked on second draft of population script for dev and testing
  • 4 hours made significant progress on Role-Based Access Control (RBAC): added protected routes, setup redirect and added middleware to catch unauthorised users and redirect them to unprotected route

03 Oct 2023

  • 5 hours re-wrote population script for db and set up db reset on dev-panel

04 Oct 2023

  • 3 hours finished RBAC implementation
  • 1 hour made significant progress on role-based UI rendering

Week 4

09 Oct 2023

  • 1 hour prioritised all features to be added using the MoSCoW framework

10 Oct 2023

  • 1.5 hours drafted basic wireframes for Admin Panel and worked out basic Allocation Group, Sub-Group, and Instance creation flow

11 Oct

  • 1 hour worked on details of Allocation Group, Sub-Group, and Instance creation flow

13 Oct 2023

  • 2 hours built basic version of wireframes as interactive UI

15 Oct 2023

  • 3 hours finalised low fidelity wireframes for Admin Panel Allocation Group, Allocation Sub-Group and Allocation Instance pages

Week 5

16 Oct

  • 4 hours built interactive UI skeleteon based on revised low fidelity wireframes

17 Oct 2023

  • 4 hours re-designed low fidelity Admin Panel wireframes

18 Oct

  • 1 hour begun designing low fidelity wireframes for Supervisor Account page
  • 1 hour met with Dr Graham McDonald to get better understanding of requirements

20 Oct

  • 2 hours planned out how to implement keeping track of active instance for each user

Week 6

23 Oct

  • 2 hours re-wrote population script endpoints to debug non-deterministic behaviour bug
  • 1 hour refactored database schema

24 Oct

  • 3 hours re-wrote population script as separate scripts rather than api endpoints

25 Oct

  • 3 hours forked matchingproblems package to add/modify methods to be able to run solver without need for command-line arguments and textfile

26 Oct

  • 3 hours finished method modification to allow data to be passed from json rather than command-line arguments and textfile
  • 1 hour started testing hitting matching-server endpoints from the web-app

Week 7

31 Oct

  • 1 hour worked on project admin, merging all branches and project folder restructuring

04 Nov

  • 2 hours added tRPC to project allowing for typesafety in api endpoints
  • 3 hours started converting existing procedures and db crud operations to tRPC routers and endpoints

Week 8

10 Nov

  • 3 hours separated user router to student and supervisors, and started working on student router

11 Nov

  • 2 hours refactored app directory page structure to reflect new site structure

12 Nov

  • 2 hours worked on group and sub-group creation form validation
  • 4 hours worked on group router and sub-group router procedures

Week 9

13 Nov

  • 3 hours worked on allocation instance creation form validation
  • 2 hours started schema refactor

14 Nov

  • 4 hours finished schema refactor
  • 3 hours updated database seed script to include all information required to run a matching

15 Nov

  • 3 hours worked on basic communication between matching-server and web-app

16 Nov

  • 2 hours worked on formatting data on web-app to be able to send them to the matching-server in the correct shape

17 Nov

  • 3 hours finished collection and formatting of data from the database on the web-app before making request to matching-server for an allocation
  • 3 hours created method on python model to output matching result as a JSON to be sent back to the web-app

18 Nov

  • 2 hours finished python model and worked on parsing JSON response into an object that can be used to update the admin-panel ui
  • 2 hours worked on basic table to display matching data summary (size, weight, profile)

Week 10

no work done due to deadlines

Week 11

1 Dec

  • 2 hours made summary tables responsive and created admin-panel tab to display detailed results of a matching

2 Dec

  • 5 hours moved data formatting to matching-server: web-app now collects and sends data including string IDs to matching-server, where information is put into a hash-table for converting to-and-from integers used by the matching package

3 Dec

  • 3 hours displayed detailed matching and rank of projects for each algorithm in the dedicated details tab, finished off changes to generous, greedy and minimum-cost algorithms
  • 1 hour started working on stage control, tabs-available change depending on active stage, but no way to change stage from ui

Week 12

no work done due to exam

Week 13

11 Dec

  • 0.5 hour updated greedy-generous algorithm on matching-server to work with updated data representation and return matching data formatted correctly
  • 2 hours changed admin-panel tabs to be individual pages and started work on the stage control functionality

12 Dec

  • 1 hour finished stage control, now persists between stages and responsively updates sidebar
  • 3 hours implemented allocation-matching selection, updating database to reflect selection