47 Commits

Author SHA1 Message Date
Hayden Hargreaves
f027a16b8c (FEAT): Deployed! Need to work on the CI/CD! 2025-12-28 22:20:39 -07:00
Hayden Hargreaves
14b41d204f forgot this 2025-12-27 23:46:01 -07:00
Hayden Hargreaves
90b3b7b1b0 (FIX): So so so much has been migrated.
But this includes templ builds also... Needed for compilation. Search is
the last broken piece, I believe.
2025-12-27 23:45:09 -07:00
Hayden Hargreaves
25ac0fd527 (FEAT): Searching is working!
So much progress! Yay!! Whats missing is the global storage of the
filters. That is the final touch for searching.
2025-11-30 21:53:07 -07:00
Hayden Hargreaves
00acb981b0 (FEAT): Created GetUserV2 API.
This is used to finish the recipe display page!
2025-11-20 12:40:49 -07:00
Hayden Hargreaves
c68cb72ffb (FEAT): Engagement for recipes is translated. 2025-11-19 13:44:41 -07:00
Hayden Hargreaves
cfaace1bfd (FEAT): Working on the recipe page! This one is making lots of progress.
But there is lots to be done!
2025-11-18 22:28:22 -07:00
Hayden Hargreaves
3e138089dd (DOC): Added some optmization notes 2025-11-15 23:59:22 -07:00
Hayden Hargreaves
6cd46cffc3 (FIX): Updated the recipe of the week with optional help. 2025-11-15 23:56:10 -07:00
Hayden Hargreaves
38f3c87885 (FEAT): Migrated the home page APIS.
Just need a fix for the optinal authenticated user for the ROTW.
2025-11-15 23:43:20 -07:00
Hayden Hargreaves
c0b76506c4 (FEAT): Profile page APIs are complete!!!!
This also includes a shell.nix file for use just in case the flake
isn't.
2025-11-15 23:26:16 -07:00
Hayden Hargreaves
f66a990040 (FEAT): Profile APIs are almost totally migrated! 2025-11-14 23:46:46 -07:00
Hayden Hargreaves
983d326a47 (FIX): Auth seems to be working much better!
Finally, thank god. I still want a better way to manage the cookies. But
not right now.
2025-11-14 23:31:23 -07:00
Hayden Hargreaves
3177a4d089 (FEAT): Working on auth still 2025-11-14 22:33:54 -07:00
Hayden Hargreaves
1749a91bf9 (FEAT): Context is somewhat working
It works okay, feels a bit slugish, but that might just be the
environments fault.
2025-11-14 13:08:05 -07:00
Hayden Hargreaves
25ea3fcfd7 (FEAT): JWT auth is coming along so well!
We have it in the UI, just need a way to send it back and handle it in
the backend.
2025-11-13 22:57:05 -07:00
Hayden Hargreaves
34b0cc4199 (FEAT): Translated the first API.
Auth is next...
2025-11-13 21:38:47 -07:00
Hayden Hargreaves
aad4640527 (REFACTOR): Working on dependency injection.
However, everything seems really slow now... 950ms for a page request?
Something is wrong, just not sure what yet.
2025-09-04 21:51:16 -07:00
Hayden Hargreaves
296f32aa6d (FIX): Forgot to update this. Need to change cookies too. 2025-07-22 22:50:12 -07:00
Hayden Hargreaves
e0e1230660 (FEAT): Dev/prod environment toggle is complete!
We can now use environment values to dictate which values are used for
the DB and the domain. This is a simple solution, but for now, it works!

This will merge into master and we can then see it live in action!
2025-07-22 22:43:40 -07:00
Hayden Hargreaves
94740b4b54 (FEAT): Added a handler to recover from panics.
This is not perfect, and def not set in stone. But for now, it will
return a JSON page, and not crash. I want this to log the user out,
clear the cookies, and then direct home with a message saying something
went wrong.

I also want it to send me an email with the details, but one step at a
time for now, that is not 100% necessary, I just need to fix the bugs.
I also need to fix the environments.
2025-07-22 22:11:11 -07:00
Hayden Hargreaves
65c73bddfa (FIX): Working on finding all of the nil-deref errors.
This may have caught a few. Next I need to actually work on the
development/testing/production environment setup.
2025-07-22 21:37:47 -07:00
Hayden Hargreaves
eec8ed00c3 (FEAT): Application has been dockerized.
The application can now be built, tailwind is built, AND templ
components are generated! Which means, we can no longer push the
tailwind generated CSS file OR the templ generated go files!

Plus, this is the first step towards deployment and CI/CD!
2025-07-21 20:14:03 -07:00
Hayden Hargreaves
21f958a4fb (FEAT): Completed the lists section on the home page.
This includes backend updates as well as frontend changes! The backend
also includes a new repository to get a list of jobs via their IDs,
which does respect order!

The list displays for users that are logged in and a small message when
the user is not logged in. The last piece is the recipe of the week
segment, which can be as simple as a DB cron-job. But that will require
stored procedures. Need to learn those next.

Though I want to deploy the application soon, so I need to begin working
on that.
2025-07-20 21:56:56 -07:00
Hayden Hargreaves
045dc13fbe (FEAT): Created favorites search route which allows for better search.
This basically marks the favorites page completed. Updating the recipe
repository to allow the search function to accept a userId and favorites
flag. This flag will toggle a "favorites only" search. Which can be used
to replicate the same functionality from the search page in the
favorites page. This later can serve as a baseline for updating to also
work for activity search.

I am starting to think an ORM is a good idea...I heard Gorm is good, but
for now, there is a bit too much tech debt.
2025-07-16 18:57:36 -07:00
Hayden Hargreaves
aacca77890 (FEAT): Created backend API to get users favorite recipes.
The UI is wired up and connected as well, for the profile page. Next
step is to create the favorites page.
2025-07-15 22:11:25 -07:00
Hayden Hargreaves
2a33edc8f6 (FEAT): Implemented API for the share engagement.
This includes user and no user routes! Now wired to the frontend,
however, it will still create an engagement even if it fails...
2025-07-15 21:19:47 -07:00
Hayden Hargreaves
bebeb25492 (DB/FEAT): Implemented toggle favorite in the backend.
The frontend is half wired up, just need to update the button. I also
want to update the recipe methods to return the favorite status. This
will follow very similar to the way I updated the tags. Another method
which can be called to attach the favorite state.
2025-07-14 21:30:45 -07:00
Hayden Hargreaves
d29426290d (FEAT): Created engagement buttons, and wired most of them up!
The make button is pretty much done, just need to finish up by
rate limiting it. That will take place in the engagement repository.

Sharing works as well, just a UI change, there is no backend yet, maybe
there should be an engagement type for sharing recipes. But not totally
sure.

The viewing is also in a semi-working state. It does not create requests
for users that aren't signed in, which needs to come. With that update
there is a need to update HOW the requests come in, we don't need it
every time we load the page. Maybe just when we click to it, from
somewhere else?

Finally, the favoriting does not totally work. The entry into the
engagement table is complete, but the actual favorites table, favorite
creation, button toggling AND button rendering is not implemented yet.
2025-07-14 21:00:28 -07:00
Hayden Hargreaves
d2835c636c (DB/FEAT): Began the implementation of the user engagement!
The database requirements have been added, as well as the service/repo
architecture. A few small functions have been created, but the system is
not complete by any means. More work is required to mark this task
complete.
2025-07-13 21:34:54 -07:00
Hayden Hargreaves
3b6ebd0dae (DB/UI): Created user list API and wired to UI.
The profile list will now properly display the users recipes! The
favorites list does not exist yet, since there is no backend support for
favoriting/saving recipes. So the list displays the same content as the
user recipe list. Same goes for the activity list, not yet implemented.
2025-07-13 14:01:05 -07:00
Hayden Hargreaves
5540daf6b6 (UI): Created a 404 not found page!
This loads whenever a page that does not exist is loaded. I would also
like to add some "coming soon" dialog to the few pages that don't exist
yet. Before deploying to the server.
2025-07-10 20:52:35 -07:00
Hayden Hargreaves
c0fc47c569 (UI): UI implementation of the search page. Somewhat wired up.
Missing some context storage and better passing of data to allow
between the home page to the search page. Need a way to store the search
results in state so they can be retrieved when the page is reloaded,
etc.
2025-07-07 21:36:13 -07:00
Hayden Hargreaves
7ad710f880 (FEAT): Search is returning recipes, next just need a UI and wire job.
Furthermore, not sure how we are going to handle the searching. Maybe a
full-text search index? For now, it has been ignored, but the filters
seem to be working properly.
2025-07-06 22:40:15 -07:00
Hayden Hargreaves
35bf69d79c (UI): Implemented the recipe view page!
This can be accessed from `/v1/web/recipe/:id`! Static implementation,
not yet wired to the DB. Working on that next!
2025-07-02 21:21:10 -07:00
Hayden Hargreaves
b17c5774e9 (UI): Implemented much of the frontend recipe creation wizard.
Most everything is implemented, included a state handler and a pretty
simple (but workable) system for managing state in HTML. Nice and simple
for now.

There is still much work to be done, but the rest is simple backend
creation and error handling. And then input validation...a nightmare.
2025-06-29 22:30:20 -07:00
Hayden Hargreaves
068c47f49c (FIX): Fixed the Google domain bug. 2025-06-25 21:11:39 -07:00
Hayden Hargreaves
cf0e291dd9 (FEAT): Implemented a route constants domain file.
This file contains route constants so they can be changed dynamically.
However, they do not support changes to the router, those are still
manual.
2025-06-25 18:23:47 -07:00
Hayden Hargreaves
427a44d2f6 (UI/STYLE): Finished the initial static home page.
Next, going to try to dockerize so I can see it on mobile!
2025-06-20 16:39:02 -07:00
Hayden Hargreaves
5577d96b0d (STYLE/UI): Implemented the nav bar for mobile and desktop.
This includes creation of the basic pages.
2025-06-16 22:21:06 -07:00
Hayden Hargreaves
5e07383ab0 (FIX): Fixed the JWT handling, no need to fail.
We don't need to fail, but we do need a way to know when a user is
logged in. The new domain(server) function IsLoggedIn will do just that!
2025-06-15 20:34:03 -07:00
Hayden Hargreaves
4a0eed2fc6 (FEAT): Logout API in place. 2025-06-15 20:16:07 -07:00
Hayden Hargreaves
8e4a0deec8 (FEAT): Removed the need for sessions, going to use JWT's in cookies.
This works very well, just need to determine what routes will be
protected and such. For now, a simple system is setup, with more to
come. For now, this is a WIP and needs some light work. But auth is
almost complete.
2025-06-14 23:52:43 -07:00
Hayden Hargreaves
71e32f1fd7 (FIX): Created a decent dependency inject architecture.
The system allows services and repositories to be created in the main
server definition and then store them in the context. They can then be
retrieved and mapped onto the injection type and accessed in the
handlers. The handlers can then use the deps to call services. Each
service is initialized with the required repositories so they can be
accessed directly.
2025-06-14 12:30:17 -07:00
Hayden Hargreaves
a9cdc25adf (FEAT): Implemented the first stages of Google OAuth.
All that's left is the UI and repository implementation.
2025-06-13 22:50:46 -07:00
Hayden Hargreaves
a88d807e40 (FIX): Server and routers setup. 2025-06-13 16:44:23 -07:00
Hayden Hargreaves
0b29602cb8 (CHORE): Created the directories based on the structure defined before.
Pretty sure everything needed is here, next step is beginning implementation!
Finally, jesus.
2025-06-13 15:00:43 -07:00