feature/show-project-detail #74

Merged
aniram merged 44 commits from feature/show-project-detail into main 2026-03-06 20:14:08 +00:00
Owner

Some major refactoring happened:

  • Added the project's detail page
  • Added scrolling inside the project's history
  • Models no longer have properties with the 'CID' prefix whose purpose was to indicate that this a property that has been artificially glued to the model since although they belong together contextually they do not do so through the API. E.g.: A Project has an Author. So Project would have a CIDAuthor property. This allowed for the mistake of creating bloated templates that had access to everything although they only needed a fraction of the data passed.
  • Made the templates "dummer" so they only know what they need to and can be snapped to another template like lego pieces.
  • Added a template function called 'dict' that helps pass multiple information to a template. I'm not happy with this solution. I would rather have a smarter template engine and also the ability to use slots. Maybe in the future this app should be rewritten with Django or a similar framework with an established template engine.
  • Removed the use of mutexes in order to breakdown all of the functions that make requests to the API to make them reusable. Now everything is being passed through a channel. There is one little hack which is that since I'm fetching all authors in one goroutine and all projects in another goroutine, it is hard to associate the project to its main author so in order to do that when I fetch the author I also pass the index of the project, and then later I associate them through this index. It's dirty but it works for now.
Some major refactoring happened: - Added the project's detail page - Added scrolling inside the project's history - Models no longer have properties with the 'CID' prefix whose purpose was to indicate that this a property that has been artificially glued to the model since although they belong together contextually they do not do so through the API. E.g.: A Project has an Author. So Project would have a CIDAuthor property. This allowed for the mistake of creating bloated templates that had access to everything although they only needed a fraction of the data passed. - Made the templates "dummer" so they only know what they need to and can be snapped to another template like lego pieces. - Added a template function called 'dict' that helps pass multiple information to a template. I'm not happy with this solution. I would rather have a smarter template engine and also the ability to use slots. Maybe in the future this app should be rewritten with Django or a similar framework with an established template engine. - Removed the use of mutexes in order to breakdown all of the functions that make requests to the API to make them reusable. Now everything is being passed through a channel. There is one little hack which is that since I'm fetching all authors in one goroutine and all projects in another goroutine, it is hard to associate the project to its main author so in order to do that when I fetch the author I also pass the index of the project, and then later I associate them through this index. It's dirty but it works for now.
aniram force-pushed feature/show-project-detail from 7b03a44cd6 to 7934219918 2026-03-05 21:45:35 +00:00 Compare
@ -63,0 +73,4 @@
return nil
}
// this layout is not optional, it is the closes to how the API returns date
Author
Owner

typo

typo
aniram left a comment
Author
Owner

pretty good

pretty good
aniram merged commit 808386de29 into main 2026-03-06 20:14:08 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
overdrives/cidadon!74
No description provided.