North Rose Devs website: Difference between revisions

From Littledamien Wiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
[[Category:Symfony]] [[Category:PHP]] [[Category:Python]] [[Category:Django]] [[Category:Web Development]]
[[Category:Project Documentation]] [[Category:AngularJS]] [[Category:Symfony]] [[Category:PHP]] [[Category:Python]] [[Category:Django]] [[Category:Web Development]]
== Overview ==
== Overview ==


Line 11: Line 11:


== Deployment ==
== Deployment ==
One goal should be to include all packages installed via `npm`. Make sure to ''always'' install packages with the `--save-dev` option so they can be installed in all environments.
E.g. Twitter Bootstrap, Foundation, AngularJS can all be installed with `npm`.
TODO: `npm` requires its own article. Document how to maintain project dependencies. How to treat the `node_modules` directory. Also, how `bower` with its `bower_components` directory factors in. (`bower` is invoked by `npm` when installing AngularJS.)


=== Local development platform ===
=== Local development platform ===
Line 23: Line 29:
** `git merge feature/T0###`
** `git merge feature/T0###`
* Push to GitHub: `git push origin master`
* Push to GitHub: `git push origin master`
<div class="alert alert-warning">Actually, be careful with this. After a `git pull` the timestamps of the files will be updated, which could cause PHPStorm or PyCharm to want to move the files during a '''Sync with Deployment''' operation.</div>


==== Running the app ====
==== Running the app ====

Revision as of 15:04, 5 December 2015

Overview

Documentation of the configuration and technologies of the North Rose website.

Goals

  • 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

One goal should be to include all packages installed via npm. Make sure to always install packages with the --save-dev option so they can be installed in all environments.

E.g. Twitter Bootstrap, Foundation, AngularJS can all be installed with npm.

TODO: npm requires its own article. Document how to maintain project dependencies. How to treat the node_modules directory. Also, how bower with its bower_components directory factors in. (bower is invoked by npm when installing AngularJS.)

Local development platform

Getting the latest code

  • 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
Actually, be careful with this. After a git pull the timestamps of the files will be updated, which could cause PHPStorm or PyCharm to want to move the files during a Sync with Deployment operation.

Running the app

  • Run the project in PyCharm (python manage.py runserver 127.0.0.1:8000)
  • Connect to the site in a browser: http://127.0.0.1:8000

Syncing between machines

This situation would occur if for some reason it was necessary to switch between machines before a branch is checked in.

  • Create a remote host (Local or mounted folder) in PyCharm.
  • Sync with that remote host.
  • Start working on the different machine.

Staging

TK

Production

TK

Technologies

Platforms & packages

Python

  • python 3
  • TODO: determine the exact minimum version. I think it's 3.4.x at this point.

Django

  • Minimum version: 1.8.7
Grappelli
  • Minimum version: 2.7.2
  • Upgrade with pip install -U django-grappelli

Custom package dependencies

  • 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

IDE

  • PyCharm

Database

  • PostgreSQL
  • Local development database is located on littledamienii

Version control

North Rose on GitHub

$ git remote add origin https://github.com/dbarchowsky/northrose.git
$ git push origin master