North Rose Devs website: Difference between revisions
| (10 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
[[Category:Project Documentation]] [[Category:AngularJS]] [[Category:Symfony]] [[Category:PHP]] [[Category:Python]] [[Category:Django]] [[Category:Web Development]] | [[Category: North Rose Web App]][[Category:Project Documentation]] [[Category:AngularJS]] [[Category:Symfony]] [[Category:PHP]] [[Category:Python]] [[Category:Django]] [[Category:Web Development]] | ||
== Overview == | == Overview == | ||
| Line 26: | Line 26: | ||
* Push to GitHub: `git push origin master` | * Push to GitHub: `git push origin master` | ||
==== Running the app ==== | ==== Running the app locally ==== | ||
1. Make sure the the virtual environment for the project is loaded. | |||
<pre> | |||
$ source ./venv/bin/activate | |||
</pre> | |||
2. Make sure `localhost` is listed under `ALLOWED_HOSTS` in `settings.py`. | |||
''(And make sure that that `localhost` is NOT listed under `ALLOWED_HOSTS` in the production environment.)'' | |||
3. Run the project in PyCharm (`python manage.py runserver 127.0.0.1:8000`) | |||
4. Connect to the site in a browser: http://localhost:8000 or http://127.0.0.1:8000 | |||
==== Syncing between machines ==== | ==== Syncing between machines ==== | ||
| Line 41: | Line 52: | ||
=== Production === | === Production === | ||
See [[Deploying a Django app on AWS]]. | |||
Make sure to register all relevant environment variables in the environment. This needs to be done on an `eb create` type event (NOT after updating the environment with `eb deploy`). | |||
Some global variables are defined in the local `.ebextensions/02-python.config` file. Variables holding sensitive information have their names registered via `.ebextensions` without the associated values. Other more sensitive variables are left out entirely. | |||
== Technologies == | == Technologies == | ||
| Line 79: | Line 94: | ||
* [[:Category:PostgreSQL|PostgreSQL]] | * [[:Category:PostgreSQL|PostgreSQL]] | ||
* Local development database is located on `littledamienii` | * <strike>Local development database is located on `littledamienii`</strike> | ||
* Local development database is located on the same individual machines running development web servers. | |||
* Consider moving PostgreSQL database to shared servers (e.g. DS916) if feasible | |||
=== Version control === | === Version control === | ||
[https://github.com/dbarchowsky/north-rose North Rose on GitHub] | [https://github.com/dbarchowsky/north-rose North Rose on GitHub] | ||
<syntaxhighlight lang="bash"> | |||
$ git remote add origin https://github.com/dbarchowsky/north-rose.git | |||
$ git push origin master | |||
</syntaxhighlight> | |||
=== Hosting === | === Hosting === | ||
| Line 89: | Line 111: | ||
==== Amazon AWS ==== | ==== Amazon AWS ==== | ||
* Elastic Beanstalk - Web server processes and environment | |||
* Amazon RDS - PostgreSQL database | |||
* Amazon S3 - file system storage | |||
== Notes == | == Notes == | ||
| Line 103: | Line 120: | ||
* [[Updating North Rose Content]] | * [[Updating North Rose Content]] | ||
* [[NorthRose Invoicing Web App]] | |||
=== References === | === References === | ||
<references /> | <references /> | ||
Latest revision as of 16:14, 29 November 2020
Overview[edit]
Documentation of the configuration and technologies of the North Rose website.
Goals[edit]
- Host the site on AWS.
- A portfolio of web development work built with python/Django.
- An invoicing system. Currently this is built with Symfony, but ultimately it should be integrated with the rest of the site, restricted to admin-level access.
Deployment[edit]
See Deploying a Django app on AWS
Local development platform[edit]
Getting the latest code[edit]
- Always do:
git pull origin masterbefore working. - Create branch locally:
git co -b feature/T0###] - Commit changes after they are finished.
- Merge with
master:git co mastergit merge feature/T0###
- Push to GitHub:
git push origin master
Running the app locally[edit]
1. Make sure the the virtual environment for the project is loaded.
$ source ./venv/bin/activate
2. Make sure localhost is listed under ALLOWED_HOSTS in settings.py.
(And make sure that that localhost is NOT listed under ALLOWED_HOSTS in the production environment.)
3. Run the project in PyCharm (python manage.py runserver 127.0.0.1:8000)
4. Connect to the site in a browser: http://localhost:8000 or http://127.0.0.1:8000
Syncing between machines[edit]
See Wiki on Sharing Git Branches on Different Workstations
Staging[edit]
TK
Production[edit]
See Deploying a Django app on AWS.
Make sure to register all relevant environment variables in the environment. This needs to be done on an eb create type event (NOT after updating the environment with eb deploy).
Some global variables are defined in the local .ebextensions/02-python.config file. Variables holding sensitive information have their names registered via .ebextensions without the associated values. Other more sensitive variables are left out entirely.
Technologies[edit]
Platforms & packages[edit]
Python[edit]
- python 3
- TODO: determine the exact minimum version. I think it's 3.4.x at this point.
Django[edit]
- Minimum version: 1.8.7
Grappelli[edit]
- Minimum version: 2.7.2
- Upgrade with
pip install -U django-grappelli
Custom package dependencies[edit]
- Contact Info
- Package that manages individual people's contact information.
- This is a stand-alone PyCharm project that can be added to other applications-level projects.
- e.g.
[DEV_ROOT]\django\django-contact-info
Development platforms[edit]
IDE[edit]
- PyCharm
Database[edit]
- PostgreSQL
Local development database is located onlittledamienii- Local development database is located on the same individual machines running development web servers.
- Consider moving PostgreSQL database to shared servers (e.g. DS916) if feasible
Version control[edit]
$ git remote add origin https://github.com/dbarchowsky/north-rose.git $ git push origin master
Hosting[edit]
Amazon AWS[edit]
- Elastic Beanstalk - Web server processes and environment
- Amazon RDS - PostgreSQL database
- Amazon S3 - file system storage