#+title: WikiMusic SSR
#+options: toc:nil
Server side rendered (SSR) frontend for WikiMusic
/WikiMusic/
#+begin_html
<div>
<img src="https://img.shields.io/badge/Haskell-5D4F85?logo=haskell&logoColor=fff&style=plastic" alt="Haskell"/>
<img src="https://img.shields.io/badge/GNU%20Emacs-7F5AB6?logo=gnuemacs&logoColor=fff&style=plastic" alt="GNU Emacs"/>
<img src="https://img.shields.io/badge/NixOS-5277C3?logo=nixos&logoColor=fff&style=plastic" alt="NixOS"/>
</div>
#+end_html
WikiMusic as a software means an ingenious combination of a server-side-rendered frontend, a powerful backend REST API, a database, and a user-interface to create a Content Management System (CMS) and a Gallery for music of all kinds, with educational intents.
This is 100% free software, licensed under the GNU General Public License v3 or later.
[[https://www.gnu.org/licenses/gpl-3.0.en.html][Refer to the full license, on GNU's website]]
The WikiMusic project is an invite-only community, with the goal of knowledge sharing, and not profit driven.
[[https://www.buymeacoffee.com/jjbigorra][Please donate by clicking here]]. This helps us keep the underlying cloud infrastructure and Joe's work hours going strong.
In this Git repository you will find the source code behind WikiMusic's frontend.
* Project management
Find below a list ideas and work being done on this project by all our contributors.
** Work in progress
*** TODO Invite users functionality
*** WIP Create and optimize custom Prelude, and clean all files imports
** Project backlog
*** TODO Automated Cabal Hackage release in CI and version bumps
*** TODO Recently viewed functionality
*** TODO Add optional lyrics for song textfield
*** TODO Improve reusability in ~fromString . T.unpack $ x~
*** TODO Extract language and DictTerm into its own package
*** TODO Add better error handling and logging
*** TODO Add back button in some pages, and redirect to logical places
*** TODO Liked items list view (liked songs, liked genres)
*** TODO Create "for profit" version (premium offline pre-rendered) of WikiMusic, as app, embedded SQLite
*** TODO Use more non-empty types and sets if possible
*** TODO Create black box tests for basic system functioning (with Mock REST API generated from the API Spec)
*** TODO Genre <> Song <> Artist relation
*** TODO Add forums
*** TODO More reusable forms, with validations applied in Javascript
*** TODO More separation of HTML components
*** TODO Accessibility best practices
*** TODO Validate and limit size and type of files being uploaded
**** TODO GP5 support (song file upload)
*** TODO Prometheus metrics and visualizations, use Grafana in Docker, also in production server
*** TODO Upon resetting password, reset to a page that explains you should have received an e-mail or add notification balloon
*** TODO Notification system via ViewVars (vv) URL params, to show balloons with notifications like Done, Deleted, You Should have received email
*** Share minify CSS and miniify JS functions into principium as well
** Javascript
*** TODO ASCII Tab editing and creating helpers
*** TODO Chord highlighter and auto scroller as song view tools
** Done
*** DONE Prometheus metrics and visualizations, use Grafana in Docker, also in production server
CLOSED: [2024-09-09 ma 16:47]
*** DONE Migration to GitHub
CLOSED: [2024-09-05 do 22:43]
*** DONE Remove unused dependencies
CLOSED: [2024-09-05 do 22:43]