The House App is a cutting-edge tool designed to enrich the educational journey for students and teachers alike. It offers insights to track house-related activities and achievements, fostering engagement within the school community.
The House App is a cutting-edge tool designed to enrich the educational journey for students and teachers alike. It offers insights to track house-related activities and achievements, fostering engagement within the school community.
I have been working on cleaning up the UI library and using proper html elements and not remaking my own. I also am fixing bugs and updating the edit stuff pages. They now have one save button and a different ‘Danger Zone’ Card for deleting or archiving. I also just fixed this happy database issue (picture 1). Turns out i for got to give the notifications service access to the email outbox. And the worker filled up every single db connection. The app has been in some weird states today and that was why. I forgot a couple rollback on errors in the transaction… Its fixed now though. I also got to learn how to kill connections to postgres
Log in to leave a comment
I added TOTP support and made MFA actually MFA. I redesigned the security page. Also when confirming something it now requires MFA if you have MFA enabled because thats kinda the point. I also fixed a bunch of stuff that I didn’t do very well. I’m really happy with how all of this turned out.
I spent a ton of time cleaning up my UI library and making things better. I also tried to make a astro library with some astro version of stuff in my UI library, but i gave up on that since i couldn’t get that to work. I also tried to fix the types and autoimports from my UI library, but i couldn’t do that either. It works right now so i’m just going to leave it. I just released version v1.2.0!
Log in to leave a comment
So i forgot to make the popup for mfa if you are logging in and have totp and passkeys. so I made that. I also found out the refresh system was broken on the client because i set and read from different localstorage keys. So i removed my helper functions. I think its ready to be published!
Log in to leave a comment
I haven’t made a devlog for a while because I have been fixing bugs and preparing for the update and I didn’t have a picture. I’m in the testing part now. Turns out at some point i broke CSP :) I thought this was kinda funny. I also broke the mfa part from the main login part on accident. So i MFA wasn’t actually working…. That is fixed now since its kinda important. I used to use a MFA Methods string array but i am removing that since I have better ways now. I just forgot to update the login route
Log in to leave a comment
I added more emails and worked on the confirm popup. It now uses mfa instead of just passwords
Log in to leave a comment
I have been pretty busy with redoing the email system so i can add more security emails. I had to do a lot with go’s template/html package. The identity server now adds emails that don’t contain personal infomation to an outbox table in the db. I make a worker for the notifications server to check every minute for emails in the outbox. Then it sends them. Now that i have the workers system i can finally make clean up workers :)
Log in to leave a comment
So i made some changes. I changed ‘MFA’ to ‘2FA’ since most users already know what that is. I also fixed wording to be better and made the passwordless login button work
Log in to leave a comment
I did just made the new account security page! I still have to make an option to enable and disable passwordless login
Log in to leave a comment
I have been working on adding TOTP support for mfa stuff. I got the registering and verifying done. The UI for this is next but i have to redo the whole thing since I only designed it for Webauthn. I also have to change how mfa is stored and enabled since i dont really like the way I have it now.
Log in to leave a comment
I made a whole bracket system for the games feature and an archives page. The bracket system was a lot harder than i thought it would be. Im really happy with the result!
I have been cleaning up some code and making my build process better. I was able to take 7MB off of the server docker image. I did this by using .dockerignore files and changing the order of the Dockerfile a bit so that it does the layers better. I wasn’t able to make the app image smaller but its now built in a dockerfile instead of github actions
Log in to leave a comment
I have been working on bug fixing and the start game popup. I added a description to the game type selector. I also made the whole game archives page. I can finally show how many cheers a house got (so an admin can add points from it if they want) and more information about it. To do the cheers thing i had to make a database table for that since I didn’t track it before now. In the future i’ll add a more settings for cheers. v1.1.0 is almost done!
Log in to leave a comment
I’m getting really close to finishing this update! I fixed a ton of issues with the bracket system. Heres a video of it working! (with one small issue that i thought i fixed…) Now i just have to do some UI updates and stuff like that
Log in to leave a comment
Ok I have been working on fixing bugs (theres a lot) but i just had the whole bracket thing advance properly for the first time! I still have a lot to fix and test. For example this is happening (second picture) I think its because i’m doing a .push on a reactive array when the round already exists but i’m not sure. Oh also, in this test i didn’t have any go nil pointer dereferences :)
Log in to leave a comment
I started redoing the manage game bracket page to be better. This is what i have so far. I did find a really interesting bug though… Somehow new matches are getting the same house for house A and house B
Log in to leave a comment
I just added an archives page for archived users and houses. This will also have games and years at some point too
Log in to leave a comment
I haven’t had that much time lately but I just made the bracket system only appear if the organization has an even number of houses. Doing bye arounds is something that i don’t need right now and it adds a ton of complexity.
Log in to leave a comment
It now works a little better and more reliable. I still have a lot of work to do
Log in to leave a comment
Ok so it now updates the next match. Still need to figure out how to make them line up on the UI but thats an issue for tomorrow. The code for this is really bad. I can clean it up later but i really want it to just work right now. I also really need to optimize this because I make a ton of DB calls and that really slows it down. This was probably one of the hardest things ive done in a while. There are so many edge cases
Log in to leave a comment
I haven’t made that much progress because i have been trying to fix this really annoying bug. This is the function where it is. When a past match is updated it needs to update the matches that ‘rely’ on it. Right now it doesn’t (picture 2) So i have been trying to do that. That is what picture 1 is. The bug is that when i get the match in a round where its house equals the one i just updated it doesn’t exist because I didn’t update that match (sorry if this doesn’t make sense). Anyway ive spent a long time on this and just figured out what the bug is (thats what all of the extra text is). I don’t know how im going to fix this. Because I don’t think I have a way to get the next match
Log in to leave a comment
I redesigned the matches. I think this one looks a lot more clean. I don’t think Im going to connect them I kinda like this design. I also made the matches switch the top and bottom house. So now they line up correctly. Next up is fixing the many bugs and animations
Log in to leave a comment
I now have them lined up! I don’t really know how to connect them though. I think the design I have is too cluttered. This is what i have so far
Log in to leave a comment
I got the view game page existing. I still need to make them line up correctly not really sure how I’m going to do that yet though
Log in to leave a comment
I finally got the server to create new matches when the two previous ones have a selected winner. I still have a ton of bugs and things to test but it works! The next thing I’m going to work on is a better match screen and getting it to be less delicate. Also the WS is very spammy so I might work on that too
Log in to leave a comment
I added the websocket for this game type. While i was making this, I accentually made the function on the frontend that reads messages from the websocket send a message to the websocket. So i made an infinite spam loop. here is the handler for the select winner message type
Log in to leave a comment
I just finished design of the manage page for the the next round and next and previous buttons don’t work yet but thats because i haven’t done the backend side for that yet
Log in to leave a comment
I have been working on the bracket game type. I now have round 1 working. In theory all i need now is a way to select the winner and create new rounds and it will ‘work.’ The UI is going to be the hardest part of this. Anyway this is what i have so far. The server will generate round 1 by taking all of the houses, mixing them, and pairing them together. I do want admins to be able to pick where they want the houses though but i need something working before i can do that
Log in to leave a comment
So i started working on a bracket game type, because the leaderboard one doesn’t work for everything (also i just want to make a bracket on the UI). While i was testing it turns out notifications where broken. The timer would finish but they wouldn’t go away. Turns out const notifications = useNotifications(); is reactive but const { notifications, remove } = useNotifications(); isn’t… (for context, useNotifcations is a pinia store)
Log in to leave a comment
I migrated the main website to Astro and added audit logs. I learned a lot about Typescript and how it does types and how packages work.
I finished the audit logging for The House App Server. This one had a lot more scopes then the identity server. I had to write the same thing over and over to get the user ID and session ID to put in the logs. So I also made some custom snippets for the first time
Log in to leave a comment
Im working on adding audit logs to the backends. Eventually this will come to the UI. I just finished the identity server. This is the scopes I made.
Log in to leave a comment
I have been working on getting the nuxt-shared library and @origami-systems/ui to work together. The @origami-systems/ui library now holds the vue components and things i can share that are not nuxt related. Thenuxt-shared library now just provides auto-imports for a nuxt project. I was able to get the components to work pretty easily but getting the types to work was a pain. I had to create this file (picture). I have a script on the @origami-systems/uiproject to create this an I copy it to the nuxt-shared so it can provide the imports. I’m not happy with this outcome, i want it to be automatic but it works for now. I did learn a lot about how typescript does types. I also had to read the vite docs so i could configure the @origami-systems/ui library correctly.
Log in to leave a comment
I just readded the notifications system. Now the notifications in the bottom right corner work again! I copied and changed this from my nuxt apps. It used to be a pinia store but now its a composable
Log in to leave a comment
I just finished the rest of the migrations. Everything works now! I did test building and all of the cards didn’t look right, its because I use css to change the max-width of the card. Turns out in the dev server the css class falls through but in a production build it doesn’t. Im not really sure what file to upload so here is the file structure
Log in to leave a comment
I just finished remaking the bug tracker page. All of the vue reactive stuff just worked when i moved it over! I might be able to optimize it more since this page does shift a lot because of the vue component
Log in to leave a comment
I have been working on rewriting the main website in astro. Its a mostly static site and i wanted the speed that astro provided. I also am building it in Astro v6 since i wanted to see what the newest version was like and because its in public beta. There are some things i miss from nuxt but i really like how the page loads instantly now
Log in to leave a comment
I just fixed bugs and updated stuff
I have been working on bug fixes. I moved the create announcements button to the bottom left corner to better match other pages. I also allowed user selecting on some things that make sense.
Log in to leave a comment
Since i did the database migration and updated to v1.0.0 i no longer have a database for development. I have been working on that and making a system for backups and restoring.
Log in to leave a comment
I rewrote a ton of stuff for this update. I made an identity server, a notifications server, switched to postgres and redid a lot of the schema.
I just shipped v1.0.0. Here is a picture of part of the changelog! During the update I found out I used notification instead of notifications for that server.
Log in to leave a comment
I have done a lot of stuff. I added golangci for linting today. I haven’t ever really used a linter before. This is the config i settled on. I also fixed a ton of bugs and prepared for the update tomorrow.
Log in to leave a comment
I redid my refresh token system to be a session system. Now the server controls a lot more. This is what it looks like.
Log in to leave a comment
I have been working on the sudo dashboard and notifications server. I moved my global notifications over to be in the database instead of a json file. The notifications server now gives the global notifications. My sudo dashboard is now where i can add new global notifications. My v1.0.0 update goes out in Wednesday. Here is a picture of the global notifications I made for them.
Log in to leave a comment
I have been doing a ton of bug fixes and clean up. The main website now is updated to the newest version of my shared library. The titlebar items now are colored the house app’s blue when you are on a page. I also fixed a bunch of bugs with the points with games. I had some logic backwards and adding points removed them locally, showed as removing points, but send the add points message in the websocket
Log in to leave a comment
I have been working on fixing bugs. I did a lot of clean up on the server so that it is more update with the ways I do things now. I also redid the edit houses page. I also made the auth middleware redirect back to where you were after logging in. Admins can now enable or disable cheering
Log in to leave a comment
I have been working on fixing bugs and a new cheering system for games. When an admin starts a game, there is now an option to enable cheering. This allows students to press a cheer button when viewing the game. If 10 cheers are hit for a house, confetti is shown with that house’s color. Eventually, admins will be able to award points based on how many times a house cheered. There is a 2 minute cooldown for the cheer button, but i disabled it for the video
Log in to leave a comment
I shipped the updated version of the main website today. I learned that nuxt content doesn’t work if you have @sqlite.org/sqlite-wasm and better-sqlite3 installed at the same time.
I shipped the updated version of the main website today. I also figured out that nuxt content doesn’t work if you have @sqlite.org/sqlite-wasm and better-sqlite3 installed at the same time. I also worked on fixing bugs on the main app. Here is a picture of the new blog. It is 1000x better than the old one.
Log in to leave a comment
Yesterday I started a new “sudo” dashboard for me to be able to add organizations and modify things like readonly. After fighting CORS for 45 minutes I can finally change the readonly status. (Vege-Table is my testing organization)
Log in to leave a comment
The past few months I have been working on v1.0.0. I have redesigned the entire main website (the picture). I also split the apps backend into 3 total servers. There is an identity server for authentication, notification server for sending push notifications. I also rewrote the old backend to use a Postgres database
Log in to leave a comment