{"id":29978859,"url":"https://github.com/jbrodriguez/mediagui","last_synced_at":"2025-08-04T12:13:26.870Z","repository":{"id":38421824,"uuid":"42456346","full_name":"jbrodriguez/mediagui","owner":"jbrodriguez","description":"go / vuejs / vuex powered application","archived":false,"fork":false,"pushed_at":"2025-07-05T23:32:55.000Z","size":21513,"stargazers_count":24,"open_issues_count":2,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-08-02T16:57:15.163Z","etag":null,"topics":["go","react","tailwindcss","vite"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jbrodriguez.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2015-09-14T15:11:00.000Z","updated_at":"2025-07-05T23:32:59.000Z","dependencies_parsed_at":"2024-03-14T12:45:21.448Z","dependency_job_id":"a93ce247-c92c-4644-897e-3ac8a8c27ee0","html_url":"https://github.com/jbrodriguez/mediagui","commit_stats":null,"previous_names":[],"tags_count":53,"template":false,"template_full_name":null,"purl":"pkg:github/jbrodriguez/mediagui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbrodriguez%2Fmediagui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbrodriguez%2Fmediagui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbrodriguez%2Fmediagui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbrodriguez%2Fmediagui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jbrodriguez","download_url":"https://codeload.github.com/jbrodriguez/mediagui/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbrodriguez%2Fmediagui/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268695652,"owners_count":24292086,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-04T02:00:09.867Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["go","react","tailwindcss","vite"],"created_at":"2025-08-04T12:13:25.041Z","updated_at":"2025-08-04T12:13:26.794Z","avatar_url":"https://github.com/jbrodriguez.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mediaGUI\n\n_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](www.themoviedb.org) and [iMDB](https://www.imdb.com).\n\n## Screenshots\n\nCover View\n\n![Screenshot](metadata/img/cover.png)\n\nMovies View\n\n![Screenshot](metadata/img/movies.png)\n\n## Introduction\n\n**mediaGUI**'s main objective is to be rewritten whenever I want to learn a new technology.\n\n- 1st Iteration [(code)](https://github.com/jbrodriguez/mediabase/)\u003cbr /\u003e\n  The project's first name was [mediabase](http://www.apertoire.net/introducing-mediabase) \u003cbr /\u003e\n  To learn:\n\n  - [go](https://golang.org/)\n  - [AngularJS 1](https://angularjs.org/)\n\n- 2nd Iteration [(code)](https://github.com/jbrodriguez/mediagui/tree/0.5.8/) \u003cbr /\u003e\n  I renamed the project to **mediaGUI** \u003cbr /\u003e\n  To learn:\n\n  - [go-micro](https://github.com/micro/go-micro/): microservices in go\n  - [react](http://facebook.github.io/react/)\n  - [ffux](https://github.com/milankinen/ffux/): A functional approach to state management\n  - [flexboxgrid-sass](https://github.com/hugeinc/flexboxgrid-sass/)\n\n- 3rd Iteration [(code)](https://github.com/jbrodriguez/mediagui/tree/3.8.0/) \u003cbr /\u003e\n  To learn:\n\n  - [vuejs](https://vuejs.org/) - [tachyons-sass](https://github.com/tachyons-css/tachyons-sass)\n\n- 4th Iteration [(code)](https://github.com/jbrodriguez/mediagui/tree/4.2.0/) \u003cbr /\u003e\n  To learn:\n\n  - [vue-cli](https://cli.vuejs.org/)\n  - [vuex modules](https://vuex.vuejs.org/guide/modules.html)\n\n- 5th Iteration [(code)](https://github.com/jbrodriguez/mediagui/tree/2023.11.22-882b833) \u003cbr /\u003e\n  To learn:\n\n  - [gRPC](https://gprc.io/)\n\n- 6th Iteration [(code)](https://github.com/jbrodriguez/mediagui/) \u003cbr /\u003e\n  To learn:\n\n  - [swr](https://swr.vercel.app/)\n\n## Summary\n\n### 6th Iteration\n\n- update stack to vitejs\n- modernize go code\n- i touch this project sparingly, so I'm switching back to react for easier maintenance\n- swr for data fetching\n\n### 5th Iteration\n\ngRPC is easier to work with than go-micro (+consul).\n\n### 4th Iteration\n\n@vue-cli 3.x is an awesome tool.\n\nI'd say it's the reference right now, like parceljs on steroids for vuejs.\n\nI can't say the same about vuex modules.\n\nIt's probably because I'm using class decorators and typescript, but namespacing doesn't feel quite right.\n\nHopefully vue 3.x will improve in that aspect.\n\n### 3rd Iteration\n\nvuejs is a pleasure to work with.\n\nIts main assets are:\n\n- [vue-cli](https://github.com/vuejs/vue-cli): creates a starter project, you just need to start coding and not worry about tooling\n- [vuex](https://github.com/vuejs/vuex): opinionated and easy state management\n\nThe 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.).\n\nAlthough vuex has some boilerplate, it still feels less than redux's.\n\n## App Structure\n\nThe docs folder contains the schema for the sqlite db that supports the application.\n\nBy default, the app will build/look for the following structure\n\n~ (home folder)\u003cbr\u003e\n|\\_ .mediagui\u003cbr\u003e\n|\\_**\\_ mediagui.conf (if required)\u003cbr\u003e\n|\\_\\_** db (sqlite db)\u003cbr\u003e\n|\\_**\\_ web\u003cbr\u003e\n|\\_\\_\\_\\_** index.html \u003cbr\u003e\n|**\\_\\_** js\u003cbr\u003e\n|**\\_\\_** css\u003cbr\u003e\n|**\\_\\_** img (storage for movie covers, backdrops, etc)\u003cbr\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjbrodriguez%2Fmediagui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjbrodriguez%2Fmediagui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjbrodriguez%2Fmediagui/lists"}