Skip to content

Instantly share code, notes, and snippets.

@Suor
Last active March 2, 2020 07:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Suor/650a92b6a3a9b10a9b16f2dc55eaa1e6 to your computer and use it in GitHub Desktop.
Save Suor/650a92b6a3a9b10a9b16f2dc55eaa1e6 to your computer and use it in GitHub Desktop.
Web App doc

Application

Language: Python 3.7.
Framework: Django, Django Rest Framework
Libraries: django-allauth, celery
Storage: PostgreSQL, Redis for cache and queues. May also use lazy queues over PostgreSQL, may shift non-lazy queues to RabbitMQ.

Front-end:

  • any popular framework chosen by front-end team,
  • plot lib should be the same we will use in CI/CD.

More on plot lib

I would take a look at d3.js/c3.js:

  • d3 is very flexible: can do anyhting including anymations, efficient,
  • d3 is low level, hard to get unless you already do,
  • c3 provides a higher level abstraction, which is really easy to use,
  • c3 might not cover all our needs, but we can add our own high-level abstractions on top of d3.

We can take a look at Data Science oriented plot libs, but last time I took a look, which was 3 years ago, they all had some of the following flaws:

  • python centric, no way to use in js front-end
  • hard to extend, which may bite later

Infrastructure

Use docker + docker-compose for local working copies. A backend and a front-end in the separate docker images, this makes it easy to ignore each others mumbo jumbo.

Use Amazon EKS, keep docker images there as close as possible to their dev versions. Staging server for dev branch.

Process

Start with push into dev, review later. PRs when need to discuss/ask for advice. Switch to PRs only when we are out of rapid dev stage.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment