tl;dr mediaGUI is a web based app to catalogue a movie library. It scans the folders you choose looking for movies, then fetch metadata from themoviedb.org and iMDB.
Cover View
Movies View
mediaGUI's main objective is to be rewritten whenever I want to learn a new technology.
-
1st Iteration (code)
The project's first name was mediabase
To learn: -
2nd Iteration (code)
I renamed the project to mediaGUI
To learn:- go-micro: microservices in go
- react
- ffux: A functional approach to state management
- flexboxgrid-sass
-
3rd Iteration (code)
To learn: -
4th Iteration (code)
To learn: -
5th Iteration (code)
To learn: -
6th Iteration (code)
To learn:
- update stack to vitejs
- modernize go code
- i touch this project sparingly, so I'm switching back to react for easier maintenance
- swr for data fetching
gRPC is easier to work with than go-micro (+consul).
@vue-cli 3.x is an awesome tool.
I'd say it's the reference right now, like parceljs on steroids for vuejs.
I can't say the same about vuex modules.
It's probably because I'm using class decorators and typescript, but namespacing doesn't feel quite right.
Hopefully vue 3.x will improve in that aspect.
vuejs is a pleasure to work with.
Its main assets are:
- vue-cli: creates a starter project, you just need to start coding and not worry about tooling
- vuex: opinionated and easy state management
The combination of vue-cli/vuex takes away a lot of the guess work that you generally find in redux (how to structure the app, etc.).
Although vuex has some boilerplate, it still feels less than redux's.
The docs folder contains the schema for the sqlite db that supports the application.
By default, the app will build/look for the following structure
~ (home folder)
|_ .mediagui
|__ mediagui.conf (if required)
|__ db (sqlite db)
|__ web
|____ index.html
|__ js
|__ css
|__ img (storage for movie covers, backdrops, etc)