Systers Portal is for Systers communities to post and share information within and with other communities.
Website: http://portal.systers.org
Project page: https://anitab-org.github.io/portal/
If you are interested in learning more about this project, start with reading Portal GitHub Wiki.
-
Make sure you have installed Python 3.6, pip3 and virtualenv.
-
If working behind a proxy, make sure your environment variables are properly set up. If you still get an error due to proxy, use "-E" flag along with "sudo" to export all the environment variables.
-
Make sure you have python3-dev installed on your operating system. For Debian, you would additionally require libpq-dev. Install by using
sudo apt-get install libpq-dev python3-dev
-
Make sure you have PostgreSQL installed. For a tutorial on installing Postgres, Django Girls' ebook, Tutorials Extension, is a reference. The info is also on Django Girls GitHub repository.
-
Clone the repo -
git clone https://github.com/systers/portal.git
and cd into theportal
directory. If working behind a proxy, follow the instructions here. -
Create a virtual environment with Python 3 and install dependencies:
$ virtualenv venv --python=/path/to/python3 $ source venv/bin/activate $ pip install -r requirements/dev.txt $ sudo apt-get install python-gdal
-
Create
systersdb
database, wheresystersdb
might be any suitable name [Password should not be empty].$ sudo -i -u postgres $ createuser <any name e.g. alice> --pwprompt $ psql $ CREATE DATABASE systersdb; $ \c systersdb; $ GRANT ALL PRIVILEGES ON DATABASE systersdb to <the name>;
-
Rename
.env.example
to.env
. -
Update the values in the
.env
file with the corresponding values like below.
-
Open the
.env
fileSECRET_KEY = <your-secret-key> DEBUG = True ALLOWED_HOSTS = * # Database settings DB_NAME = systersdb DB_USER = <your-database-username> DB_PASSWORD = <your-database-password> DB_HOST = localhost DB_PORT = 5432 # Email settings (Optional) EMAIL_HOST = localhost EMAIL_PORT = 1025 # External APIs (Optional) GOOGLE_MAPS_API_KEY = <your-google-maps-api-key> ZOOM_API_KEY = <your-zoom-api-key> ZOOM_API_SECRET = <your-zoom-api-secret-key> ZOOM_USER_ID = <your-zoom-user-id>
- Run
python systers_portal/manage.py migrate
. - Run
python systers_portal/manage.py cities_light
for downloading and importing data for django-cities-light. - Run
python systers_portal/manage.py createsuperuser
to create a superuser for the admin panel. Fill in the details asked. - Run
python systers_portal/manage.py runserver
to start the development server. When in testing or production, feed the respective settings file from the command line, e.g. for testingpython systers_portal/manage.py runserver --settings=systers_portal.settings.testing
. - Before commiting run
flake8 systers_portal
and fix PEP8 warnings. - Run
python systers_portal/manage.py test --settings=systers_portal.settings.testing
to run all the tests.
If you face some issues while installing and making Portal up in your local, have a look at issues labelled as While Setting up Portal.
- Make sure you have installed Python 3.6, make sure you the right one (32/64 bits). Source. During installation please pay attention to the following details :
- Tick/Select Add Python 3.6 to PATH
- Select Customize Installation (this is important)
- Tick/Select pip (others, leave as default), this is important
- Tick install for all users
- Tick add Python to environment variables
- Tick create shortcuts for installed applications
- Precomplie standard libary
- Select install location and hit install
-
Run
pip install virtualenv
using windows command line -
You would have to install PostgreSQL. Download from official location or alternative location, you could lookup some PostgreSQL tutorials online if you are completely blank on this.
-
Clone the repo -
git clone https://github.com/systers/portal.git
and cd into theportal
directory. Use git CMD or git Bash(unix-like terminal) to do so. -
Create a virtual environment with Python 3 and install dependencies, using CMD :
$ virtualenv venv $ .\venv\Scripts\activate $ pip install -r requirements/dev.txt
-
Make sure you have GDAL installed.
- Download OSGeo4W using the OSGeo4W installer
- Specifically, install pkg-gdal-python, which is within 'Libs' in the installer tree.
- Add GDAL_LIBRARY_PATH in the
systers_portal/settings/base.py
and make sure the path points to the GDAL Library on your local machine.
- Create
systersdb
database, wheresystersdb
might be any suitable name.
-
Open the SQL Shell for postgresql from the windows start menu or wherever accessible
$ Server [localhost]: Just press enter, leave this empty $ Database [postgres]: Just press enter, leave this empty $ Port [5432]: This is the default port just press enter, leave this empty $ Username [postgres]: This is the default username just press enter, leave this empty $ Password for user postgres: Input password you created during installation and press enter $ CREATE USER <anyname you want e.g systers> WITH PASSWORD 'your password'; $ CREATE DATABASE systersdb; $ \c systersdb; $ GRANT ALL PRIVILEGES ON systersdb TO <username created above>;
- Rename
.env.example
to.env
. - Update the values in the
.env
file with the corresponding values like below.
-
Open the
.env
fileSECRET_KEY = <your-secret-key> DEBUG = True ALLOWED_HOSTS = * # Database settings DB_NAME = systersdb DB_USER = <your-database-username> DB_PASSWORD = <your-database-password> DB_HOST = localhost DB_PORT = 5432 # Email settings (Optional) EMAIL_HOST = localhost EMAIL_PORT = 1025 # External APIs (Optional) GOOGLE_MAPS_API_KEY = <your-google-maps-api-key> ZOOM_API_KEY = <your-zoom-api-key> ZOOM_API_SECRET = <your-zoom-api-secret-key> ZOOM_USER_ID = <your-zoom-user-id>
- Run
python systers_portal/manage.py migrate
. - Run
python systers_portal/manage.py cities_light
for downloading and importing data for django-cities-light. - Run
python systers_portal/manage.py createsuperuser
to create a superuser for the admin panel. Fill in the details asked. - Run
python systers_portal/manage.py runserver
to start the development server. When in testing or production, feed the respective settings file from the command line, e.g. for testingpython systers_portal/manage.py runserver --settings=systers_portal.settings.testing
. - Before commiting run
flake8 systers_portal
and fix PEP8 warnings. - Run
python systers_portal/manage.py test --settings=systers_portal.settings.testing
to run all the tests.
Congratulations! you just set up the Systers Portal on you windows dev enviroment. If you face any issues while installing and making Portal up in your local, have a look at issues labelled as While Setting up Portal.
If you wish to view a sneak peek of the Systers Portal, you may use Docker to preview the Portal. Note: The following Docker configuration is not intended to be run in production at the moment. It may be configured to do so in the future.
- Install Docker.
Follow the installation steps for your specific operating system:
- Docker runs natively on a Linux-based system.
- For Windows and Mac OS X, you should follow instructions for installing boot2docker which also installs VirtualBox.
- Install docker-compose. Note: fig has been deprecated. Docker-compose replaces fig.
- Create a new directory on your local system.
- Enter
git clone https://github.com/systers/portal.git
to clone the Systers Portal repository. After the clone is done, change directory (cd) to theportal
directory. - Run
docker-compose build
. This pulls the Docker images required to run the project and installs the necessary dependencies. - This step will require the Django SECRET_KEY.
Run
docker run -e SECRET_KEY=foobarbaz portal_web
. - Run
docker-compose run web python systers_portal/manage.py migrate
. - Run
docker-compose run web python systers_portal/manage.py cities_light
for downloading and importing data for django-cities-light. - Optional:
Run
docker-compose run web python systers_portal/manage.py createsuperuser
if you wish to create a superuser to access the admin panel. - Run
docker-compose up
to start the webserver for the Django Systers Portal project. - Systers Portal should be running on port 8000.
- If you are on Linux, enter
http://0.0.0.0:8000
in your browser. - If you are using boot2docker on Windows or Mac OS X, enter
http://192.168.59.103:8000/
in your browser. If this IP address doesn't work, runboot2docker ip
from the command line and replace the previous IP address in the HTTP request with the IP returned by boot2docker.
- If you are on Linux, enter
Documentation for Systers Portal is generated using Sphinx and available online at http://systers-portal.readthedocs.org/
To build the documentation locally run:
$ cd docs/
$ make html
To view the documentation open the generated index.html
file in browser -
docs/_build/html/index.html
.
For more information on semantics and builds, please refer to the Sphinx official documentation.
You can view the requirements document here.
You can reach the maintainers and our community on AnitaB.org Open Source Zulip. If you are interested in contributing to portal, we have a dedicated stream for this project #portal, where you can ask questions and interact with the community, join with us!