iBillding is a Building Charge Management system.
- Using Django stack.
- Nabi Zameni, CEO & CTO
- Reza Amiri, Backend Developer
- Fateme Salehnia, Frontend Developer
- Hosein Hashemi, UI/UX Designer
- Mohsen Sadeghzade, Software Engineer
- No tests so far
Application is using GitHub Actions for CI/CD. In order to config it for future use we have to set multiple secrets which are located in staging.yml including password-less SSH_PRIVATE_KEY which should be generated using following command:
ssh-keygen -m PEM -t rsa -b 4096For more info look into guideline of action packages like easingthemes/ssh-deploy or appleboy/ssh-action.
-
Clone the repo
-
Install Gunicorn, MySQL 5.7+, NPM
-
Create a
userwithsecretas password in MySQL and%as Host (NOTE that to set host properlsy for security reasons ). Then create a DB likebillding.
MySQL> CREATE USER 'user'@'%' IDENTIFIED BY 'secret';
MySQL> CREATE DATABASE `billding`;
MySQL> GRANT ALL PRIVILEGES ON `billding`.* to 'user'@'localhost' IDENTIFIED BY 'secret';
MYSQL> ALTER USER 'user'@'%' IDENTIFIED WITH mysql_native_password BY 'secret';
MySQL> FLUSH PRIVILEGES;-
Copy
.env.exampleto.envand set variables. -
Run
root@terminal$ apt install libpq-dev
root@terminal$ apt install default-libmysqlclient-dev
root@terminal$ apt install python3-pip
root@terminal$ pip3 install django-admin
root@terminal$ pip3 install -r requirements.txt
root@terminal$ python3 bcm/manage.py migrate --noinput
root@terminal$ npm install
root@terminal$ python3 bcm/manage.py collectstatic --noinput
root@terminal$ cp -rf node_modules bcm/staticfiles- Then run the application with:
root@terminal$ gunicorn3 bcm.wsgi:application --chdir bcm --bind 0.0.0.0:80 --workers=1 --daemon