Skip to content

Latest commit

 

History

History
53 lines (48 loc) · 3.88 KB

README.md

File metadata and controls

53 lines (48 loc) · 3.88 KB

White-label builder

Customized Android apps builder with scalability in mind

Video Demonstration Stack Stack:

  • Centrifugo - 🐙 - Scalable real-time messaging server in language-agnostic way. Set up once and forever. Allow users of White-label builder to get build results faster.
  • Celery - 🐙 - Distributed Task Queue to scale build workers easily.
  • Redis - 🐙 - In-memory database that persists on disk.
  • ReactJS - 🛠️ - 🐙 - A declarative, efficient, and flexible JavaScript library for building user interfaces.
  • Redux - 🛠 - 🐙 - Predictable state container for JavaScript apps.
  • Django - 🛠 - 🐙 - The Web framework for perfectionists with deadlines.
  • Webpack - 🛠️ - 🐙 - A static module bundler for modern JavaScript applications.
  • Babel - 🛠️ - 🐙 - A JavaScript compiler; use next generation JavaScript, today.
  • Node.js - 🛠️ - 🐙 - A JavaScript runtime built on Chrome's V8 JavaScript engine.
  • Material UI - 🛠️ - 🐙 - React components that implement Google's Material Design.
  • Python - 🛠️ - 🐙 - A programming language that lets you work quickly.

Usage:

  • User customize app using web form and create build task
  • Server emit task in queue for build workers
  • Worker create build flavor, edit app resources and start gradle build
  • After build user get QR code to download apk

Android App repo for this demo materkey/white-label.git is private because it provides Delivery Club API details. Reproducing apk build without android app repository require modifications to existing code. Making it universal solution for arbitrary app is a future plan.

TODO: Containerize and fix vulnerabilities

Not Quick Start Guide

  1. git clone git@github.com:materkey/white-label-builder.git
  2. cd white-label-builder/
  3. virtualenv -p python3 env
  4. source env/bin/activate
  5. pip install -r requirements.txt
  6. cd whitelabelbuilder/
  7. npm install
  8. npm run-script build or npm run-script start
  9. cd ../ mkdir white-label cd white-label
  10. git clone git@github.com:materkey/white-label.git
  11. cd white-label
  12. git checkout develop and add secrets.xml to values folder of android project res in defaultFlavor
  13. Change directory to centrifugo/
  14. ./centrifugo genconfig
  15. Setup django.conf in root of project, create db for app and and copy centrifuge secret from config.json to django.conf
  16. ./centrifugo --config=config.json --insecure --web --admin --port=8081 --address=127.0.0.1
  17. In new terminal tab change dir to white-label-builder/whitelabelbuilder
  18. source ../env/bin/activate
  19. celery -A whitelabelbuilder worker -l INFO -E
  20. In new tab keep directory to white-label-builder/whitelabelbuilder/
  21. source ../env/bin/activate
  22. ./manage.py migrate
  23. ./manage.py runserver
  24. To create task you have to be logged in through VK OAUTH2