pip install git+https://github.com/Antherkiv/falcon-jwt-checker.git
It remains to add security policies use a RSA key instead a string on JWTs, and do tests with owasp zap.
This it's intended to be a monorepo that stores microservices written in python and a pure ES mashup:
- Registration and authentication
- Movie description
- Comments (Generic comments)
- Very simple file handler sever
The server it's implemented with:
- Falcon
- Marhsmallow
- SQLAlchemy
- JSON Web Token
- Argon hasher
- Etc.
Mashup:
- ES6 - ES7 as loading language
- React as render engine
- React Waterfall
- ReactStrap
- Formik
- Slatejs
- My own slatejs plugins
- React date picker
- React drop zone
- Axios and so...
Steps:
- Ensure you have or install in your OS:
Python 3.7 Postgres 10.5 (Run the server) Quote break.
- Ensure you have installed and cofigured mkvitualenvwrapper (this is a very fast and easy way to have python envs)
- Make a python virtual environment
(11:00:01) ~/ ❯❯❯ mkvirtualenv ia
- clone the project and go to the root folder:
(0:58:23) ~/ ❯❯❯ git clone https://github.com/Antherkiv/billboard-cinema.git
(0:59:45) ~/ ❯❯❯ cd billboard-cinema
- Do the bootstraping of initial state
(1:05:01) ~/billboard-cinema ❯❯❯ cd sql
First the users db:
(1:06:46) ~/billboard-cinema ❯❯❯ pg_dump -U postgres db < db.sql
Movies db:
(1:06:46) ~/billboard-cinema ❯❯❯ pg_dump -U postgres movies < movies.sql
Comments db:
(1:06:46) ~/billboard-cinema ❯❯❯ pg_dump -U postgres comments < comments.sql
- Install python dependencies:
(1:00:01) ~/billboard-cinema ❯❯❯ cd microservices && pip install -r requeriments.txt
- Run the servers in this order (it's important to respect the ports the time not allowed me to setup a most robust url responder or put behind nginx to manages the ports).
(1:00:01) ~/billboard-cinema/microservices ❯❯❯ gunicorn auth:api
(1:00:04) ~/billboard-cinema/microservices ❯❯❯ gunicorn gunicorn movies:api -b 0.0.0.0:8001
(1:03:06) ~/billboard-cinema/microservices ❯❯❯ gunicorn gunicorn comments:api -b 0.0.0.0:8002
(1:03:06) ~/billboard-cinema/microservices ❯❯❯ gunicorn gunicorn files:api -b 0.0.0.0:8003
(1:03:06) ~/billboard-cinema/microservices ❯❯❯ cd ../
That's it, we are done on microservices
- Bootstraping the client
(1:00:01) ~/billboard-cinema ❯❯❯ cd mashup && npm install && npm start (It will give us a server on htp://localhost:1234)
- Do the bootstraping of initial state
(1:05:01) ~/billboard-cinema ❯❯❯ cd sql
First the users db:
(1:06:46) ~/billboard-cinema ❯❯❯ pg_dump -U postgres db < db.sql
Movies db:
(1:06:46) ~/billboard-cinema ❯❯❯ pg_dump -U postgres movies < movies.sql
Comments db:
(1:06:46) ~/billboard-cinema ❯❯❯ pg_dump -U postgres comments < comments.sql
The "admin user" is "antherkiv@gmail.com" The password is "admin"
- Do the register (the link is on the top panel)
- Enter and go to admin panel:
- We are done