Skip to content

Instantly share code, notes, and snippets.

@glippi
Created October 22, 2019 14:02
Show Gist options
  • Save glippi/cdce81b0c5638bd352253d1ff770fed5 to your computer and use it in GitHub Desktop.
Save glippi/cdce81b0c5638bd352253d1ff770fed5 to your computer and use it in GitHub Desktop.
Example of technical documentation
# 🧙 merlin-serverless
> Skills and Craftspeople management tool
## :construction: Work in progress:
This repository contains a the work that we started on the branch `graphql-hasura` of [merlin's repository](https://github.com/codurance/merlin).
The scope is to build an application that should help Codurance's members to
have a quick overview of all the people that work in the company and their
skills, together with some other informations about location and whether they're in the bench or not.
**It's important to note that for the nature of the project, where we experiment a lot with new technologies (Hasura, GraphQL, react-apollo), we tried to keep the code as clean as possible, but there is still huge margin of improvements, especially in some areas of the app, also in the tests.**
## :battery: Tech stack:
* AWS Lambda
* Postgres
* Hasura (GraphQL)
* React
**More details on how is implemented the frontend:**
We are using `react` with `JavaScript`.
We don't use any library for managing the state, we just rely on react `context`.
To style the components we are using `tachyons`, this means that instead of
having to write manually the css, we just use the class provided by the
stylesheet of `tachyons`. In order to take advantage of tachyons, you shouldn't find yourself writing any class inside the stylesheet.
The workflow should be the following:
```
I want a width of 100%
I search in stylesheet of tachyons in order to find the name of the class that
have this responsability
Go to https://cdnjs.cloudflare.com/ajax/libs/tachyons/4.11.1/tachyons.css
and type CTRL-f, searching for width: 100%
find the relevant class (in this case w-100) and copy and paste this value
inside the className attribute of your component
```
For more info about tachyons, go [here](http://tachyons.io/).
For the tests we are using `jest`, `testing-library/react-testing-library`, `cypress`.
## :clipboard: Project Management tools:
At the moment we have two differents places where we update the status of the
project:
* [Taiga](https://taiga.codurance.com/project/jim-merlin/timeline)
* [GitHub Projects](https://github.com/codurance/merlin-serverless/projects/1)
The latest and most updated source of the tasks and their status is the `GitHub
Projects` section. The reason is that `taiga` was first introduced when we
started the project with the apprentices. When we moved everything to `serverless` we started to work on a new repository and we start to keep track of everything inside the README first, and the projects board then.
## Sequence Diagram:
![Sequence diagram](./img/sequence.svg)
// to see the diagram go here: https://mermaidjs.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtXG4gICAgcGFydGljaXBhbnQgQ2xpZW50XG4gICAgcGFydGljaXBhbnQgUzNcbiAgICBwYXJ0aWNpcGFudCBHYXV0aDJcbiAgICBwYXJ0aWNpcGFudCBIYXN1cmFcbiAgICBwYXJ0aWNpcGFudCBBdXRoTGFtYmRhXG5cbiAgICBDbGllbnQgLT4-IFMzOiBHRVQvXG4gICAgUzMgLT4-IENsaWVudDogc3RhdGljIGZpbGVzXG4gICAgQ2xpZW50IC0-PiBHYXV0aDI6IExvZ2luXG4gICAgR2F1dGgyIC0-PiBDbGllbnQ6IHRva2VuSWRcbmFsdCBhdXRoZW50aWNhdGVkIHVzZXJcbiAgICBDbGllbnQgLT4-IEhhc3VyYTogR0VUL2RhdGFcbiAgICBIYXN1cmEgLT4-IEF1dGhMYW1iZGE6IHZlcmlmeSB0b2tlbklkXG4gICAgQXV0aExhbWJkYSAtPj4gSGFzdXJhOiAyMDBcbiAgICBIYXN1cmEgLT4-IENsaWVudDogZGF0YVxuZWxzZSB1bmF1dGhlbnRpY2F0ZWQgdXNlclxuICAgIENsaWVudCAtPj4gSGFzdXJhOiBHRVQvZGF0YVxuICAgIEhhc3VyYSAtPj4gQXV0aExhbWJkYTogdmVyaWZ5IHRva2VuSWRcbiAgICBBdXRoTGFtYmRhIC0-PiBIYXN1cmE6IDQwMVxuICAgIEhhc3VyYSAtPj4gQ2xpZW50OiA0MDFcbiAgICBDbGllbnQgLT4-IEdhdXRoMjogTG9naW5cbiAgICBHYXV0aDIgLT4-IENsaWVudDogdG9rZW5JZFxuZW5kXG4iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9fQ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment