{"id":13678544,"url":"https://github.com/yezz123/My-Business","last_synced_at":"2025-04-29T15:31:49.970Z","repository":{"id":47247745,"uuid":"286632041","full_name":"yezz123/My-Business","owner":"yezz123","description":"Business management tool featuring accounts, invoices, partners, projects, and server 🦄","archived":false,"fork":false,"pushed_at":"2024-04-29T23:21:52.000Z","size":1269,"stargazers_count":49,"open_issues_count":1,"forks_count":16,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-08-02T13:23:23.020Z","etag":null,"topics":["application","buisness","certbot","clipboard","django","fqdn","framework","gunicorn","gunicorn-socket","invoices","nginx","partners","pdf","python","python3"],"latest_commit_sha":null,"homepage":"https://blog.yezz.me/blog/Start-a-Software-application-for-business","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yezz123.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":["https://paypal.me/yassertahiri"]}},"created_at":"2020-08-11T03:03:18.000Z","updated_at":"2024-06-25T13:22:58.000Z","dependencies_parsed_at":"2024-08-02T13:17:01.225Z","dependency_job_id":"031ae724-f959-40dc-8443-7ec970650073","html_url":"https://github.com/yezz123/My-Business","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yezz123%2FMy-Business","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yezz123%2FMy-Business/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yezz123%2FMy-Business/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yezz123%2FMy-Business/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yezz123","download_url":"https://codeload.github.com/yezz123/My-Business/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224178915,"owners_count":17268969,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["application","buisness","certbot","clipboard","django","fqdn","framework","gunicorn","gunicorn-socket","invoices","nginx","partners","pdf","python","python3"],"created_at":"2024-08-02T13:00:54.949Z","updated_at":"2024-11-11T21:30:34.095Z","avatar_url":"https://github.com/yezz123.png","language":"Python","funding_links":["https://paypal.me/yassertahiri"],"categories":["Uncategorized"],"sub_categories":["Uncategorized"],"readme":"\u003cp align=\"center\"\u003e \u003cimg src=\"https://miro.medium.com/max/2600/1*ZuM5Oa59qIP1mVIV8C-WUw.gif\"\u003e\n\n# About\n\nMy Buisness is a business management tool featuring accounts, invoices, partners, projects, and server.[Wiki](https://github.com/GDGSNF/My-Business/wiki)\n\n# Installation\n\nMake sure `Python \u003e= 3.6` and `pip` are installed before proceeding with the installation instructions.\n\n_Note: If you are following these instructions when deploying My Buisness, it is **highly** recommended that you clone the repository in `/srv`._\n\n1. Clone this repository.\n\n2. Create a virtual environment using `$ python3 -m venv venv`.\n\n3. Activate the virtual environment using `$ source venv/bin/activate`.\n\n4. Install the external `pdftk` dependency using `$ sudo apt install pdftk` for Debian based distributions.\n\n    _Note: You may face issues installing `pdftk` on Ubuntu 18.04. Visit [this](https://askubuntu.com/questions/1028522/how-can-i-install-pdftk-in-ubuntu-18-04-and-later) link for further instructions._\n\n5. Install the `Python` dependencies using `$ pip install -r requirements.txt`.\n\n    _Note: You can safely ignore any errors about `bdist_wheel`._\n\n6. Create `config.ini` by making of copy of `config.ini.defaults` using `$ cp config.ini.defaults config.ini`.\n\n7. Edit `config.ini` with your preferred text editor and make changes to the configuration (if necessary).\n\n    _Note:My Buisness is using a SQLite3 database while `DEBUG=True`. You don't need to specify a database user or password._\n\n8. Apply the migrations using `$ python manage.py migrate`.\n\n9. Create a superuser account using `$ python manage.py createsuperuser`.\n\n10. Enable the `Cron Jobs` using `$ python manage.py crontab add`. (You need to be logged in as the user that's running the server).\n\nYou should now have a development version of the My Buisness`accessible at`localhost:8000`or`127.0.0.1:8000`.\n\n# Development\n\n_Always activate the virtual environment before performing operations._\n\n- Run the server using `$ python manage.py runserver`.\n\n- Stop the server by pressing `Ctrl-C`.\n\n_If you want My Buisness to send emails to the console while developing, edit `my-buisness/common/settings.py` and replace the value of `EMAIL_BACKED` with `'django.core.mail.backends.console.EmailBackend'`. Don't forget to undo this before committing!_\n\n# Deployment\n\n_Follow the installation instructions before continuing. If you are running the Django server, press Control-C to close it._\n\n_Make sure you have `root` privileges._\n\n## Django configuration\n\n1. Collect the static files (by default in `/var/www/my-buisness/static/`) using `$ python manage.py collectstatic`.\n\n2. Generate a `SECRET_KEY` using `$ python -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())'`.\n\n3. Copy the returned key to your clipboard because we will need it soon.\n\n4. Edit `config.ini` with your preferred text editor and replace the current `SECRET_KEY` with the one you generated earlier (it's in your clipboard, right!?).\n\n## Firewall configuration\n\n**If you have a firewall set up (recommended), make sure to open ports 80 and 443.**\n\n- If you have `UFW` set up:\n\n  - Run `$ ufw allow http`.\n  - Run `$ ufw allow https`.\n\n- If don't have `UFW` and have only `iptables` set up:\n  - Open `/etc/sysconfig/iptables` for editing using your preferred text editor.\n  - Add the following lines to the file if they do not already exist, then save and exit:\n\n```bash\n-A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT\n-A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT\n```\n\n## Installing additional dependencies\n\n- Install Gunicorn using `$ pip install gunicorn`.\n- Install Nginx using `$ apt install nginx`.\n- Install Certbot using `$ apt install python3-certbot-nginx`.\n\n_Note: Make sure to edit the file and directory paths accordingly in the instructions below._\n\n## Setting up the Gunicorn service\n\n- Edit `/etc/systemd/system/gunicorn_bt.socket` using your preferred text editor and add the following to the file:\n\n```ini\n[Unit]\nDescription=gunicorn bt socket\n\n[Socket]\nListenStream=/run/gunicorn_bt.sock\n\n[Install]\nWantedBy=sockets.target\n```\n\n- Edit `/etc/systemd/system/gunicorn_bt.service` using your preferred text editor and add the following to the file:\n\n```ini\n[Unit]\nDescription=gunicorn bt daemon\nRequires=gunicorn_bt.socket\nAfter=network.target\n\n[Service]\nUser=www-data\nGroup=www-data\nWorkingDirectory=/srv/my-buisness\nExecStart=/srv/business-tracer/venv/bin/gunicorn \\\n          --access-logfile - \\\n          --workers 3 \\\n          --bind unix:/run/gunicorn_bt.sock \\\n          common.wsgi:application\n\n[Install]\nWantedBy=multi-user.target\n```\n\n- Start the Gunicorn socket using `$ systemctl start gunicorn_bt.socket`.\n- Enable the Gunicorn socket (to run at startup) using `$ systemctl enable gunicorn_bt.socket`.\n\n## Setting up Nginx\n\n- Remove the `default` configuration from `sites-enabled` using `$ rm /etc/nginx/sites-enabled/default`.\n- Edit `/etc/nginx/sites-available/blog` using your preferred text editor and add the following to the file:\n\n\\*Note: Make sure to replace `YOUR_FULLY_QUALIFIED_DOMAIN_NAME` with your [FQDN](https://en.wikipedia.org/wiki/Fully_qualified_domain_name).\n\n```ini\nserver {\n    listen 80;\n    server_name YOUR_FULLY_QUALIFIED_DOMAIN_NAME;\n\n    location = /favicon.ico { access_log off; log_not_found off; }\n\n    location /static/ {\n        root /var/www/my-buisness;\n    }\n\n    location /media/ {\n        root /var/www/my-buisness;\n    }\n\n    location / {\n        include proxy_params;\n        proxy_pass http://unix:/run/gunicorn_bt.sock;\n    }\n}\n```\n\n- Enable the Nginx config using `$ ln -s /etc/nginx/sites-available/my-buisness /etc/nginx/sites-enabled/my-buisness`.\n- Restart Nginx using `$ systemctl restart nginx`.\n\n## Setting up the HTTPS certificate\n\n\\*Note: Make sure to replace `YOUR_FULLY_QUALIFIED_DOMAIN_NAME` with your [FQDN](https://en.wikipedia.org/wiki/Fully_qualified_domain_name).\n\n- Create an HTTPS certificate with Certbot using `$ certbot --nginx -d YOUR_FULLY_QUALIFIED_DOMAIN_NAME`.\n- Follow the script instructions.\n- You should choose option 2 (Redirect) when the script asks if you want users to be redirected to the `HTTPS` version of the website if they try accessing the `HTTP` version.\n\nGood job! You should now have a running instance of My Buisness.\n\n# [Contributing](https://github.com/GDGSNF/My-Business/blob/master/CONTRIBUTING.md)\n\n- Contributions are welcome ♥.\n- Please share any features, and add unit tests! Use the pull request and issue systems to contribute.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyezz123%2FMy-Business","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyezz123%2FMy-Business","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyezz123%2FMy-Business/lists"}