Initial Planning
had to merge README.md
This commit is contained in:
@@ -0,0 +1,40 @@
|
|||||||
|
# DECISIONS.md
|
||||||
|
|
||||||
|
A file describing tech stack / feature decisions. sort of a change log
|
||||||
|
|
||||||
|
## The Birth of the project - 2026-10-05
|
||||||
|
|
||||||
|
### Languages:
|
||||||
|
|
||||||
|
#### Backend
|
||||||
|
|
||||||
|
##### GO
|
||||||
|
|
||||||
|
The language I want to learn
|
||||||
|
|
||||||
|
#### Web Frameworks
|
||||||
|
|
||||||
|
##### HTMX
|
||||||
|
|
||||||
|
Server side rendering reducing the number of roundtrips a user has to make to the server. The server still has to make the same number
|
||||||
|
of API calls however from the client side it should take less bandwidth and feel quicker
|
||||||
|
|
||||||
|
#### Web Frontend
|
||||||
|
|
||||||
|
##### HTML
|
||||||
|
|
||||||
|
standard web building blocks, no framework chosen yet
|
||||||
|
|
||||||
|
##### CSS
|
||||||
|
|
||||||
|
standard web building blocks, no framework chosen yet
|
||||||
|
|
||||||
|
##### JS
|
||||||
|
|
||||||
|
standard web building blocks, no framework chosen yet
|
||||||
|
|
||||||
|
### DB
|
||||||
|
|
||||||
|
##### PostgreSQL
|
||||||
|
|
||||||
|
Scales better than something like SQLite at the cost of more learning overhead and setup
|
||||||
@@ -1,3 +1,102 @@
|
|||||||
# backslash
|
# Backslash
|
||||||
|
|
||||||
backslash - a backlog tracking program allowing to keep up with all the media you NEED to consume
|
## A Backlog tracker.
|
||||||
|
|
||||||
|
STATUS: Pre-Development
|
||||||
|
|
||||||
|
A self-hosted backlog tracker that enables you to import content, organize, create lists, add notes to lists or individual items,
|
||||||
|
leave reviews and ratings and track progress. As this progresses more features will be added of course.
|
||||||
|
The end goal is to create a system that allows you to track multiple media types: Books, movies, TV Shows and games etc
|
||||||
|
|
||||||
|
To begin I will create the system focused on games, the reason being I want to create this system to I can track my game backlog
|
||||||
|
as well as wanting to interact with steam and play around with importing media.
|
||||||
|
|
||||||
|
There are other options out there that are much better and established but I want to give this project a go in an attempt to improve
|
||||||
|
my programming skills and get more exposure to full stack development. By no means am I a programmer, In my day job im an Infrastructure
|
||||||
|
Operations Engineer so Im likely way out of my depth here but here goes xD
|
||||||
|
|
||||||
|
My Goal is to create this project with minimal use of AI, I will restrict AI usage to asking questions and brainstorming ideas and best practices,
|
||||||
|
again the goal here is for me to learn programming.
|
||||||
|
|
||||||
|
## Screenshots and Project Demos
|
||||||
|
|
||||||
|
TBC
|
||||||
|
|
||||||
|
## Getting started
|
||||||
|
|
||||||
|
as of right now there is no working program, not even a prototype :D
|
||||||
|
|
||||||
|
### Docker Compose
|
||||||
|
|
||||||
|
TBC once a working prototype exists
|
||||||
|
|
||||||
|
### Kubernetes
|
||||||
|
|
||||||
|
TBC once a working prototype exists
|
||||||
|
|
||||||
|
## Tech stack
|
||||||
|
|
||||||
|
I want to write the program in go, for no other reason than thats the language I want to learn.
|
||||||
|
architectural decisions will be made and change as I go this can be tracked in [DECISIONS.md](DECISIONS.md),
|
||||||
|
as needs and requirements change. Im stepping into this blind so continued research is required.
|
||||||
|
|
||||||
|
## Contributions
|
||||||
|
|
||||||
|
I am accepting feature requests / bugs however as this is a learning project for now, no prs.
|
||||||
|
|
||||||
|
## Roadmap
|
||||||
|
|
||||||
|
Will begin with basic functionality and focus on game management with imports from steam. Still unsure on feature priority / development order
|
||||||
|
|
||||||
|
## Data storage & Privacy
|
||||||
|
|
||||||
|
As this is selfhosted you are responsible for all data you hold using this project. Please be mindful of other users you may have using the system once the project evolves
|
||||||
|
to allow that. I have no idea about best practices when it comes to writing programs that deal with sensitive data such as API keys or PII, I will try to make sure security
|
||||||
|
privacy take the forefront when it comes to data storage and privacy.
|
||||||
|
|
||||||
|
## Desired Features
|
||||||
|
|
||||||
|
### Auth & Security
|
||||||
|
|
||||||
|
- [ ] Secure Login
|
||||||
|
- [ ] Integration with Auth Providers i.e Authentik
|
||||||
|
|
||||||
|
### Account
|
||||||
|
|
||||||
|
- [ ] "Families" - Allow users to view / compare libraries, notes, match shared items
|
||||||
|
- [ ] General profile customization - Profile Pictures (linked with auth / ldap / gravitar), Custom names, Bio, Profile Pages, publicly shared favourites.
|
||||||
|
- [ ] Media preferences
|
||||||
|
|
||||||
|
### Clients
|
||||||
|
|
||||||
|
- [ ] WebUI Client
|
||||||
|
- [ ] CLI client
|
||||||
|
|
||||||
|
### Media Importing
|
||||||
|
|
||||||
|
- [ ] Steam for games
|
||||||
|
- [ ] Jellyfin for media (Movies, TV Shows, Audio Books, Books)
|
||||||
|
- [ ] Support for other sources
|
||||||
|
- [ ] Scraping for descriptions, ratings, images, tags
|
||||||
|
|
||||||
|
### Organization
|
||||||
|
|
||||||
|
- [ ] Create lists
|
||||||
|
- [ ] Add notes to lists
|
||||||
|
- [ ] Add notes to individual items
|
||||||
|
- [ ] Leave personal ratings
|
||||||
|
- [ ] Filters (Genre, Length (HLTB for games), Themes, Rating)
|
||||||
|
- [ ] Sorting (Length (HLTB for games), Rating)
|
||||||
|
- [ ] Bulk actions
|
||||||
|
|
||||||
|
### Recommendations
|
||||||
|
|
||||||
|
- [ ] recommend media by comparing tags
|
||||||
|
- [ ] take into account profile media preferences
|
||||||
|
- [ ] separate recommendations based on media preference matches between family members
|
||||||
|
- [ ] Public recommendations from external lists such as imdb
|
||||||
|
- [ ] recommendations based on steam sale / steam wishlist (default off)
|
||||||
|
|
||||||
|
## License - AGPL-3.0
|
||||||
|
|
||||||
|
see license file [LICENSE](LICENSE).
|
||||||
|
|||||||
Reference in New Issue
Block a user