Repository navigation
Weekly Logs
Turito Yuenan edited this page Jan 5, 2026
·
12 revisions
2025-12-15 to 2026-01-04
- Tuesday 16: Add support for Open Graph and Twitter Cards (not like they are any useful).
- Tuesday 16: Adjust UI for event creation/editing form.
- Thursday 18: Update database schema to replace enum types with lookup tables. These will make it easier for admins to configure.
- Thursday 18: Fixed my skill issue from not knowing how to do join using the client library.
- Sunday 21 - Tuesday 23: Write documentation (still not complete).
- Wednesday 24: Debug and fix event CRUD (in Manage event page).
- Finish documentation
- 😔 (I can only be disappointed in myself) less than 40% of the time in three weeks were spent to Tradao.
- It is difficult to evaluate the current state and readiness of the app, without proper communication with client.
- Get the documentation done to pass the project to clients and potential collaborators.
- Open for Beta test with minimum viable features.
- Transfer to ITea Lab GitHub organisation.
2025-12-08 to 2025-12-14
- Monday 08: Attempt to rewrite using Vue => Fail
- Friday 12: Rewrite in SvelteKit
- Friday 12: Successfully ditch Edge Function needed for Google Wallet Integration
- Friday 12: Successfully deploy to Cloudflare Workers and ditch Deno Deploy.
- Everything else
- Everything else
2025-12-01 to 2025-12-07
- Add CORS and Trailing Slashes middlewares.
- Centralise all prop types for better code management.
- Fix library conflict errors by sourcing all dependencies from NPM.
- Renew test suite with BDD library, add automated code coverage report.
- Migrate web application UI to use BeerCSS framework, which implements a Material 3 design.
- Fix weird error that prevent non-logged-in users from being redirected to login page.
- Actually, fix any login error at all because frontend auth is a mess right now.
- Add page for event CRUD.
- Update ticket scan page.
- It is hard to pinpoint the system architecture to follow a three-tier or microservice pattern, as the application makes use of both PostgREST and edge functions. This can introduce significant performance challenges when scaling up.
- It has been difficult to determine the proper use cases and branding due to lack of communication. I have made the mistake of not properly discussing with all stakeholders the direction of Tradao, as available for ITea Lab only or all clubs at Swinburne HCMC.
- Simplify and properly document system architecture.
- Devise brief roadmap and send to ITea Lab client for review.
- Complete documentation on GitHub Wiki to aid potential collaboration.
- Update ticket scan page.
2025-11-17 to 2025-11-30
- Complete and submit COS30017 Assignment 3, using the presented idea of an Android application.
- The application is called Dajtradao, and provides a Swinburne-HCM-wide solution for event organisation and registration.
- Due to time constraints, not all features were implemented.
- The application demonstrated the potential for a mobile app solution, with QR code generation and scanning on one app.
- Google Wallet integration was not successful due to insufficient knowledge on adding credentials into the app.
- Fall Semester ends by the 30th, after which the project can resume normal operation.
- Reimplement the application using SvelteKit and BeerCSS.
- Add feature to persist check-in status for event participants.
2025-11-10 to 2025-11-16
- Discuss with client (Sr. Bao), consolidating the event creation flow to begin with uploading of event image to Supabase Storage with generated ID, then insert the event data, all with data validation throughout.
2025-10-27 to 2025-11-09
- Present a Tradao-based Android application idea to Mr. Hoang Nguyen for COS30017 Assignment 3 topic.
- Plan for an assignment-scoped Android application accommodating all events in the Swinburne HCM campus.
- Discuss with clients (Sr. Thinh and Sr. Bao), concluding on displaying past events on the event browse page and disabling event registering on these events.
2025-10-13 to 2025-10-26
(no activity documented)
- Complete Sign in with Google functionality.
- Write comprehensive documentation for outside collaboration.
- Recently, it has become nearly impossible for me to work on this project, due to an immense amount of university assignment. Having overloaded this semester, I expected this to happen.
- I wonder if I had made the right choice with choosing the Fresh framework. While its island architecture and React-based syntax has been beneficial, I doubt the support, stability, and flexibility of it.
- The new version came a few weeks ago, making so much changes that the old documentation is completely out-of-date (along with most tutorial blog posts) and the new documentation is incomplete.
- It has limited deployment choices (Deno Deploy so far).
- The original task of unifying the backend has been lost. Google Wallet integration still runs on Supabase edge function.
- Because of this, I may consider changing the framework in the near future.
2025-10-06 to 2025-10-12
- Refactor
Navbarcomponent to receive menu items as props. - Replace React-style
useState()with Preact-styleuseSignal(). - Begin integration with Google OAuth.
- Edge Functions: Update WalletObjects and Jose libraries.
2025-09-29 to 2025-10-05
- Migrate to Fresh 2.1.1.
- Change to new domain
tradao.turitoyuenan.deno.net. - Proceed with client to implement Sign in with Google.
- Sign in with Google functionality
- ITea Lab style for Google Wallet Pass
- I am not familiar with implementing SSO/OAuth.
- The domain change was caused by unsolvable Deno Deploy errors.
- Use a manual script to update Google Wallet pass class
- Follow Supabase's tutorial to implement Login with Google
2025-09-08 to 2025-09-28
- Add POST endpoint to create event.
- Add Create new event page.
- Add GET endpoint to lookup ticket by ID.
- Add Check ticket page.
- Learned and practiced how to add webcam view to a webpage.
- Learned and practiced how to use the jsQR library.
- Practiced ticket lookup with debounce support.
- Replace own validation code with yup library.
- This makes data validation more consistent and well-supported.
- Implement admin/manager login
- Complete event creation page
- Just completed three large assignments in the past weeks, expected to complete 2-3 more in the next weeks
- I don't know jack about Supabase Auth (or modern auth in general) => gotta learn
- It took me longer than expected to learn how to use the yup library
- Get the data validation done
- Finally implement secure admin/manager login
2025-09-01 to 2025-09-07
- Begin a new implementation using Deno Fresh: Preact, Tailwind, full-stack server-side
- Both Cloudflare Pages and Cloudflare Workers gets difficult when trying to implement server-side features that depend on Node.js libraries => Move to Deno Fresh and use Deno Deploy
- Turned out Deno Deploy has a separate issue with server-side features => Temporarily use Supabase edge function for interacting with Google Wallet
2025-08-25 to 2025-08-31
- Fix testrun issue: Registration form placed in less focused position in Event details page
- Fix testrun issue: Registration form submit button risks being triggered multiple times
- Fix testrun issue: Event list page glitches after using pagination and then search/filter
- With lots of other things to do, I find it difficult to focus on writing detailed Weekly Logs and other documentation
- Supabase edge functions turned out to be hard to maintain: they require a separate runtime, I have to install the same client library again, they may suffer from cold starts, I either need Docker to build them or copy-paste or edit directly on the web IDE.
- Convert Supabase edge functions to SvelteKit server-side endpoints
2025-07-07 to 2025-08-24
(no activity documented)
- I have been busy with:
- Hanging out in Melbourne
- Working on a conference paper for CCIOT 2025 about Elixir-based edge server
- Going back to Vietnam and experiencing reverse culture shock
- Joining Experience Day in August
- Working on another conference paper about Elixir-based MPC
- Preparing and joining Conception Day 2025
- Joining Orientation Day 2025
- Continue having this project of lower priority than the conference paper
2025-06-30 to 2025-07-06
- Moved high-level documentations to tradao-emp.wiki repository
- Added some JSDoc documentation to frontend and edge function code
- Completed Google Wallet ticket design in JSON format
- BE: Added
@googleapis/walletobjectslibrary to support Google Wallet integration - BE: Added guards to ensure environment variables are present
- BE: Made some code refactoring
- Test Google Wallet ticket design
- Ask prioritised stakeholders for suggestions to event registration process.
- I have been spending most of this week hanging out in Melbourne, so not a lot of progress is made
- It gets a bit difficult and risky to test Google Wallet integration.
2025-06-23 to 2025-06-29
- DB: Created SQL view
ticket_with_event_detailsto support ticket lookup - BE: Created edge function
manage-ticketsto test connection to Google Wallet API - FE: Adjusted the grid layout in Event details page
- FE: Implement search and filter of events
- Attemped to implement Google Wallet integration
- Implement lab member authentication and Create event page.
- Survey for better event registration form.
- Brainstorm and survey for Supabase RBAC.
- Google is not consistent at all in its documentations, and specifies a lot of different libraries and techniques to do non-relevant things.
- The Google Wallet API is almost alien compared to the rest of GCP.
- No comprehensive tool to preview Google Wallet pass class/object; Google pass builder is simply not helpful.
- Source code to interface with Google Wallet API has been messy.
- To professionally debug Supabase edge functions, I must deploy a local Supabase instance and enable devTool mode. This turned out to be extremely resource consuming: >5 GB of Docker images, 11 containers, laptop overheat intensely.
- Ask prioritised stakeholders for suggestions to event registration process.
- Finish event registration process with Add to Google Wallet functionality
2025-06-16 to 2025-06-22
- Git: Rebase all commits.
- DB: Created SQL function
create_event_tickets. - DB: Created SQL view
upcoming_events. - BE: Removed edge function
process-participationin favour of direct INSERT query in FE via the client library. - BE: Created edge function
get-ticketto lookup an event ticket. - FE: Add embedded Google Map into Event details page.
- FE: Created Ticket lookup page with ticket details, "Add to Google Wallet" button.
- FE: Use
upcoming_eventsSQL view in Event list page - FE: Implement search and filter of events
- Implement Google Wallet integration
- Implement lab member authentication and Create event page
- Embedded Google Map is hardcoded on one location (the Swinburne HCMC campus), and there is currently no easy way to change it based on event location.
- Role-based Access Control in Supabase (e.g. via RLS) does not apply principle of least privilege.
- Git Rebase caused all previous commits to reset their timestamps to 20/June.
- Survey for better event registration form
- Brainstorm and survey for Supabase RBAC
2025-06-09 to 2025-06-15
- DB: Created SQL table
community_events. - DB: Created SQL table
event_tickets. - BE: Created edge function
process-participationto handle user registration. - FE: Added Supabase client library.
- FE: Created Event list page with multiple, paginated event cards.
- FE: Created Event details page with event details presented in a grid layout.
- Git: Write commit messages in the Conventional Commits format.
- FE: Test user registration of event
- With already 20 commits in the remote repository, applying Conventional Commits require Git rebasing and force-pushing.
- It is unofficialised what data to require from user registering for events => Use fields from Google Forms but will change
- FE: Add a page to lookup event tickets after the user has registered
- Rebase anyway to apply Conventional Commits