diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 42095aa03..b00267770 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,7 +1,9 @@ # Contributing Guide # -Thank you for your interest in contributing to UXBox. This guide details how -to contribute to UXBox in a way that is efficient for everyone. +Thank you for your interest in contributing to UXBox. This is a +generic guide that details how to contribute to UXBox in a way that is +efficient for everyone. If you want a specific documentation for +different parts of the platform, please refer to `docs/` directory. ## Reporting Bugs ## @@ -22,7 +24,7 @@ If you found a bug, please report it, as far as possible with: If you want propose a change or bug fix with the Pull-Request system firstly you should carefully read the **Contributor License Aggreement** -section and format your commints accordingly. +section and format your commits accordingly. If you intend to fix a bug it's fine to submit a pull request right away but we still recommend to file an issue detailing what you're diff --git a/README.md b/README.md index 3ac2d1aa2..b4e71785e 100644 --- a/README.md +++ b/README.md @@ -20,12 +20,14 @@ progress in Twitter or Github and stay tuned! [See SVG specification](https://www.w3.org/Graphics/SVG/) + ## SVG based ## UXBOX works with SVG, a standard format, for all your designs and prototypes . This means that all your stuff in UXBOX is portable and editable in many other vector tools and easy to use on the web. + ## Development ## ### Introduction ### @@ -49,7 +51,6 @@ In debian like linux distributions you can install it executing: sudo apt-get install docker docker-compose ``` - ### Start the devenv ### **Requires a minimum knowledge of tmux usage in order to use that diff --git a/docs/01-Development-Environment.md b/docs/01-Development-Environment.md new file mode 100644 index 000000000..568bf9189 --- /dev/null +++ b/docs/01-Development-Environment.md @@ -0,0 +1,98 @@ +# Developer Guide # + +This is a generic "getting started" guide for the uxbox platform. It +intends to explain how to get the development environment up and +running with many additional tips. + +The main development environment consists in a docker compose +configuration that starts the external services and the development +container (called **devenv**). + +We use tmux script in order to multiplex the signle terminal and run +both the backend and frontend in the same container. + + +## System requirements ## + +You should have `docker` and `docker-compose` installed in your system +in order to set up properly the development enviroment. + +In debian like linux distributions you can install it executing: + +```bash +sudo apt-get install docker docker-compose +``` + +## Start the devenv ## + +**Requires a minimum knowledge of tmux usage in order to use that +development environment.** + +For start it, staying in this repository, execute: + +```bash +./manage.sh run-devenv +``` + +This will do the following: + +- Build the images if it is not done before. +- Starts all the containers in the background. +- Attaches to the **devenv** container and executes the tmux session. +- The tmux session automatically starts all the necessary services. + + +## First steps with tmux ## + +Now having the the container running and tmux open inside the +container, you are free to execute any commands and open many shells +as you want. + +You can create a new shell just pressing the **Ctr+b c** shortcut. And +**Ctrl+b w** for switch between windows, **Ctrl+b &** for kill the +current window. + +For more info: https://tmuxcheatsheet.com/ + + +## Inside the tmux session ## + +### Styles ### + +The styles and many related tasks are executed thanks to gulp and they are +executed in the tmux **window 0**. This is a normal gulp watcher with some +additional tasks. + + +### Frontend ### + +The frontend build process and the http server is located on the tmux +**window 1**. **Figwheel** is used for build and serve the forntend +code. For more information, please refer to `02-Frotend-Guide.md`. + + +### Backend ### + +The backend related environment is located in the tmux **window 2**, +and you can go directly to it using `ctrl+b 2` shortcut. + +By default the backend will be started in non-interactive mode for +convenience but you can just press `Ctrl+c` and execute `clojure +-J-XX:-OmitStackTraceInFastThrow -Adev:repl` for start the repl. + + +On the REPL you have this helper functions: +- `(start)`: start all the environment +- `(stop)`: stops the environment +- `(restart)`: stops, reload and start again. + +If some exception is raised when code is reloaded, just use +`(repl/refresh-all)` in order to finish correctly the code swaping and +later use `(restart)` again. + + +If this is your first run, you maybe want to load fixtures first: +`(load-fixtures)`. + +For more information, please refer to: `03-Backend-Guide.md`. + diff --git a/docs/02-Frontend-Guide.md b/docs/02-Frontend-Guide.md new file mode 100644 index 000000000..143e0e5cb --- /dev/null +++ b/docs/02-Frontend-Guide.md @@ -0,0 +1,4 @@ +# Frontend Guide # + +This guide intends to explain the essential details of the frontend +application. diff --git a/docs/03-Backend-Guide.md b/docs/03-Backend-Guide.md new file mode 100644 index 000000000..2e931f037 --- /dev/null +++ b/docs/03-Backend-Guide.md @@ -0,0 +1,4 @@ +# Backend Guide # + +This guide intends to explain the essential details of the backend +application. diff --git a/docs/04-Deployment-Guide.md b/docs/04-Deployment-Guide.md new file mode 100644 index 000000000..832b70a27 --- /dev/null +++ b/docs/04-Deployment-Guide.md @@ -0,0 +1,39 @@ +# Deployment Guide # + +This document don't intend to be a complete guide of deployment. It +will only contain the essential tips for doing it and show an example +on how we are deploying it using docker and docker-compose. + + +## Docker Images ## + +For build the production images, you need to execute the following +command: + +```bash +./manage.sh build-images` +``` + +This command will build the following images: + +- `uxbox-frontend:latest` +- `uxbox-frontend-dbg:latest` (with debug ready frontend build) +- `uxbox-backend:latest` + + +Complementary to the docker images you can build locally from this +repository, you can find additionnal flavors for backend and frontend +on external repositories: +* [Monogramm/docker-uxbox-frontend](https://github.com/Monogramm/docker-uxbox-frontend) +* [Monogramm/docker-uxbox-backend](https://github.com/Monogramm/docker-uxbox-backend) + + +## Docker Compose ## + +Look at `docker/docker-compose.yml` for a complete example. + + +## SSL/TLS ## + +The default images does not handles anything realted to ssl. They are +intended to be deployed behind a proxy (nginx,haproxy,...).