Fatex
Fatex is a symple visual wrapper of the Latex, creating beautiful texts without all the complexity of the Latex.
Modules
LiveView:
- Home -> Screen were the user create/delete/select the projects
- Model -> Screen to do the Fatex work, controls the Menu, Step, Section and Render modules
- ModelList -> Screen to create new Models based on other Models (defined in the database [seeds] as templates)
- Step -> Top menu to choose the step to work
- Menu -> Lateral menu to add images and sub-sections
- Section -> Sections of a Step
- Render -> To render the PDF (gen a id to re-render)
Controllers:
- LoginController -> Screen for user login
- UserController -> Screens to create and update users
- ModelShareController -> Screen to share models to other users
- Auth -> User authentication PLUG (used on routers)
- FileController -> To send the rendered PDF to the client
Some modules of the LiveView use the pubsub to update state in another LiveView modules (but need some fixes)
To Run
Dependencies:
- TexLive (complete)
- Docker (for postgres)
To start the server:
sudo docker-compose up -d
- Install dependencies with
mix deps.get
- Create and migrate your database with
mix ecto.setup
- Install Node.js dependencies with
cd assets && npm install
- Start Phoenix endpoint with
mix phx.server
Now you can visit localhost:4000/login/new
from your browser.
TODO
- Image Upload (upload on maker per user)
- Make the PubSub per user
- Fix bug when you click into the topic and the screen go up
- Fix share between users