North Rose Devs website: Difference between revisions

From Littledamien Wiki
Jump to navigation Jump to search
No edit summary
 
(17 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[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 11: Line 11:


== Deployment ==
== Deployment ==
See [[Deploying a Django app on AWS]]


=== Local development platform ===
=== Local development platform ===


* Run the project in PyCharm (`python manage.py runserver 127.0.0.1:8000`)
==== Getting the latest code ====
* Connect to the site in a browser: http://127.0.0.1:8000
 
* 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 ====
 
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 ====
 
See Wiki on [[Sharing Git Branches on Different Workstations]]


=== Staging ===
=== Staging ===
Line 23: 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 ==


Line 60: 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/northrose North Rose on GitHub]
[https://github.com/dbarchowsky/north-rose North Rose on GitHub]


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
$ git remote add origin https://github.com/dbarchowsky/northrose.git
$ git remote add origin https://github.com/dbarchowsky/north-rose.git
$ git push origin master  
$ git push origin master  
</syntaxhighlight>
</syntaxhighlight>
=== Hosting ===
==== Amazon AWS ====
* Elastic Beanstalk - Web server processes and environment
* Amazon RDS - PostgreSQL database
* Amazon S3 - file system storage
== Notes ==
=== See also ===
* [[Updating North Rose Content]]
* [[NorthRose Invoicing Web App]]
=== 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 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]