Improve readme

This commit is contained in:
Jan Tuomi
2017-10-25 20:28:43 +03:00
parent fd150a7601
commit cc7abbcf32
3 changed files with 133 additions and 53 deletions
+57
View File
@@ -0,0 +1,57 @@
# Linux/Mac installation instructions
## Install dependencies
### Dependency list
* Python >3.5
* PostgreSQL >9.5
* pip3
* virtualenv
* npm
Install with apt:
```
sudo apt install python3
sudo apt install python3-pip
sudo apt install postgresql
sudo pip3 install virtualenv
sudo apt install npm
```
More info about PostgreSQL at:
[https://www.postgresql.org/](https://www.postgresql.org)
These packages might be needed on certain platforms:
* python3-dev
* libffi-dev
* python3-cffi
* libssl-dev
## Create a virtual environment for python
Create a virtualenv in the parent directory.
```
virtualenv -p python3 ../virtualenv.sikweb
```
## Activate virtualenv
Assuming we are at the root of this repository and virtualenv is one level above.
```
. ../virtualenv.sikweb/bin/activate
```
## Run install wizard
Run the install wizard with
```
bash setup.sh
```
and follow the instructions.
## Done!
+21 -53
View File
@@ -14,7 +14,11 @@ Data table app for viewing and modifying the member register, member application
### Web app
Mostly static website with an event calendar.
Mostly static website with an event calendar and news feed.
### Coffee scale
Shows the current coffee scale status.
## Accessing the source
@@ -28,60 +32,24 @@ cd web2.0
git checkout develop
```
## Install dependencies
## Windows install instructions
### Dependency list
See [Windows install instructions](./windows_install.md)
* Python >3.5
* PostgreSQL >9.5
* pip3
* virtualenv
* npm
## Linux/Mac install instructions
Install with apt:
```
sudo apt install python3
sudo apt install python3-pip
sudo apt install postgresql
sudo pip3 install virtualenv
sudo apt install npm
```
See [Linux/Mac install instructions](./linux_install.md)
More info about PostgreSQL at:
[https://www.postgresql.org/](https://www.postgresql.org)
## Initializing data
These packages might be needed on certain platforms:
* python3-dev
* libffi-dev
* python3-cffi
* libssl-dev
## Create a virtual environment for python
Create a virtualenv in the parent directory.
```
virtualenv -p python3 ../virtualenv.sikweb
```
## Activate virtualenv
Assuming we are at the root of this repository and virtualenv is one level above.
Run the following `manage.py` commands. Do not run these in production without thinking!
```
. ../virtualenv.sikweb/bin/activate
python manage.py createdefaultadmin # creates an admin user
python manage.py initialize # creates user groups
python manage.py createdummydata # creates dummy members to the member register
```
## Run install wizard
Run the install wizard with
```
bash setup.sh
```
and follow the instructions.
## Running
### Use runserver command
@@ -90,7 +58,7 @@ and follow the instructions.
python manage.py runserver 0.0.0.0:8000
```
Using address 0.0.0.0 will bind to all IP addresses.
Using address `0.0.0.0` will bind to all IP addresses. Using `localhost` will only bind to your machine.
### Visit the page
@@ -98,14 +66,14 @@ Visit [https://localhost:8000](https://localhost:8000) in your browser!
## Running in production
A good way to run django in production is by using uWSGI. Install uWSGI with:
Run the project in production with gunicorn. Refer to [this page](https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-16-04) for instructions.
Install production dependencies.
```
pip install -r requirements.production.txt
```
Create an uWSGI ini file and run the daemon according to online instructions.
## Development workflow
When pulling changes from the server, use `rebase` instead of `merge` for a nice and clean linear history.
@@ -136,13 +104,13 @@ Lint python files using `pep8` with
pep8 --config=setup.cfg --count .
```
Lint javascript using `eslint` with
Lint javascript and markdown using `eslint` and `remark` with
```
eslint .
npm test
```
Use an editor with linting capabilities to write pretty code that passes linting. Examples include _Atom_ and _Pycharm_.
Use an editor with linting capabilities to write pretty code that passes linting. Examples include _VSCode_, _Atom_ and _Pycharm_.
### Unit tests
+55
View File
@@ -0,0 +1,55 @@
# Windows installation instructions
## Install dependencies
### Install python3
Visit [The python website](https://www.python.org/downloads/windows/) to install the latest version of python3.
Make sure to add the python binary directory to PATH. For instructions how to do this, refer to [this Stackoverflow answer](https://superuser.com/questions/143119/how-to-add-python-to-the-windows-path).
### Install virtualenv with pip
Run the following command to install `virtualenv`.
```
python -m pip install virtualenv
```
Setup a virtual python environment.
```
python -m virtualenv ../virtualenv.sikweb
```
## Activate virtualenv and install requirements
Activate `virtualenv` (note that this has to be active at all times).
```
source ../virtualenv.sikweb/Scripts/activate
```
Run the following command to install python packages.
```
pip install -r requirements.txt
```
## Run migrations
Run
```
python manage.py migrate
```
## Install npm for linting javascript
Follow the instructions on [the npm website](https://www.npmjs.com/package/npm).
## Set up database
By default Django uses SQLite, which doesn't need any configuration. If you need PostgreSQL instead, refer to [their website](https://www.postgresql.org/download/windows/).
## Done!