North Rose Devs website: Difference between revisions

From Littledamien Wiki
Jump to navigation Jump to search
 
(3 intermediate revisions by the same user not shown)
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 ====


* Make sure to load the virtual environment for the project.  
1. Make sure the the virtual environment for the project is loaded.
* Make sure `localhost` is listed under `ALLOWED_HOSTS` in `settings.py`.<br/>''(And make sure that that `localhost` is NOT listed under `ALLOWED_HOSTS` in the production environment.)''
 
* Run the project in PyCharm (`python manage.py runserver 127.0.0.1:8000`)
<pre>
* Connect to the site in a browser: http://localhost:8000 or http://127.0.0.1:8000
$ 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 43: Line 52:
=== Production ===
=== Production ===


TK
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 ==

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 master before working.
  • Create branch locally: git co -b feature/T0###]
  • Commit changes after they are finished.
  • Merge with master:
    • git co master
    • git 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 on littledamienii
  • 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]

North Rose on GitHub

$ 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

Notes[edit]

See also[edit]

References[edit]