Skip to content

MAKENTNU/web

Folders and files

NameName
Last commit message
Last commit date

Latest commit

a824720 · Dec 5, 2023
Sep 4, 2023
Mar 8, 2023
Dec 5, 2023
May 6, 2023
Mar 14, 2023
Oct 27, 2022
Mar 14, 2023
Dec 5, 2023
May 7, 2023
Feb 26, 2023
Apr 1, 2023
Feb 16, 2018
May 6, 2023
May 6, 2023
Jun 5, 2022
Mar 14, 2023
Sep 4, 2023
Dec 14, 2019
Mar 29, 2022

Repository files navigation

web

build codecov Maintainability

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

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"

Installation

  1. 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
  2. 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
  3. Install requirements:
    • If using Windows, first download the correct wheel for the python-ldap package from Christoph Gohlke's page (linked to by python-ldap's documentation) and install it:
      pip install [path to .whl file]
      (It is possible to instead build 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

Running the server for the first time

  1. Create an SQLite database file with the proper tables:
    python manage.py migrate
  2. Create an admin user for local development:
    python manage.py createsuperuser
    It's easiest to create one with both the username and the password set to "admin", and with no email address.
  3. 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]

Contribution guidelines

See CONTRIBUTING.md for the following topics:

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.