web
Setup
Click to expand
Prerequisites
- Python 3.10+ (latest, stable version preferred)
- Having cloned this repository to your machine
- For most purposes, check out the
dev
branch, as it's the base branch for all development:git clone https://github.com/MAKENTNU/web.git git checkout -B dev origin/dev
- For most purposes, check out the
PyCharm
We recommend using PyCharm for development, mostly because of its excellent Django support,
and because it's able to integrate all the IntelliJ-specific settings in the project's .editorconfig
file.
If you decide to use this IDE, open the repo folder cloned as part of the prerequisites, through PyCharm (File → Open...), and set the following settings (File → Settings...):
- Under "Languages & Frameworks" → "Django":
- Make sure the "Enable Django Support" checkbox is checked
- "Django project root:"
<repo folder location>/src
- "Settings:"
web/settings.py
- "Manage script:"
<repo folder location>/manage.py
- Under "Project: <repo folder name>" → "Project Structure":
- Mark the
src
folder as "Sources"
- Mark the
Installation
- Create a virtual environment, presumably named
venv
:- This should be placed in the folder containing the project folder, and not inside the project folder itself
- Example folder structure (where
web
is the name of the project folder):MAKE ├─ venv └─ web └─ README.md (this file)
- Among other things, this prevents translations from being made inside the virtual environment folder
when running the
makemessages
management command - If using PyCharm, and a virtual environment was not created as part of the project creation process, refer to the "Configure a virtual environment" guide
- Otherwise,
cd
to the project folder, and run:[newest installed Python command, like python3.11] -m venv ../venv
- Example folder structure (where
- This should be placed in the folder containing the project folder, and not inside the project folder itself
- Activate the virtual environment:
- If using PyCharm, this should be done automatically when opening a terminal tab inside the IDE
- Otherwise,
cd
to the project folder, and run:- On Windows:
..\venv\Scripts\activate
- On Linux/macOS:
source ../venv/bin/activate
- On Windows:
- Install requirements:
- If using Windows, first download the correct wheel for the
python-ldap
package from Christoph Gohlke's page (linked to bypython-ldap
's documentation) and install it:(It is possible to instead buildpip install [path to .whl file]
python-ldap
from source, but it's a bit cumbersome setting up the right build tools.) - Regardless of operating system, run:
pip install -r requirements.txt
- If using Windows, first download the correct wheel for the
Running the server for the first time
- Create an SQLite database file with the proper tables:
python manage.py migrate
- Create an admin user for local development:
It's easiest to create one with both the username and the password set to "admin", and with no email address.
python manage.py createsuperuser
- Run the server:
- If using PyCharm, just press the green "play" button in the top right corner
- Make sure that the correct run configuration is selected in the dropdown next to the button, which by default should be named "web" and have a tiny Django logo
- Otherwise, run:
python manage.py runserver [optional port number; defaults to 8000]
- If using PyCharm, just press the green "play" button in the top right corner
Contribution guidelines
See CONTRIBUTING.md for the following topics:
Wiki
Visit the wiki to read about various things related to development of this project!
Changelog
The changelog is updated on the dev
branch when changes are made to the codebase -
specifically under the "Unreleased" section.
This section is then renamed to the current date whenever a deployment pull request is merged into
the main
branch, and a new, empty "Unreleased" section is added.