Website for the students at Industrial Economics and Technology Management at NTNU Trondheim. Built with Django, Next.js, and a GraphQL API. Maintained by Rubberdøk NTNU.
- 🏔 Book the luxurious cabins Oksen and Bjørnen
- 💸 Register for upcoming events and purchase tickets through Vipps
- 🎉 Find and apply for the ideal student organization at Indøk
- 🔒 Simple login through Feide
- 📝 Easily navigate through the archive of Indøk documents
Found a bug, got a suggestion, or something we should know about? Take a look at the roadmap and file an issue if it's not on the roadmap!
-
Install and start Docker Desktop
-
Clone the project and build the Docker images
git clone https://github.com/rubberdok/indok-web.git
cd indok-web
docker compose build
- Run the project in Docker and set up the database
docker compose up
docker compose exec backend python manage.py loaddata initial_data
The last command creates some initial data, two test users, and one admin user:
Username | Password | Indøk |
---|---|---|
eva_student | 5tgb | true |
asbjorn_elevg | 1qaz | false |
admin | admin123 | super |
-
Accessing the test users
-
Log in with Feide > Feide Test Users (under "Other login alternatives")
-
Enter the respective username and password.
-
- Install pre-commit hooks and Node dependencies locally for linting
- If you already have
yarn
installed, skip to step 4.
- Install
nvm
by following the instructions - Install Node 16
nvm install 16 nvm use 16
- Install
yarn
npm i -g yarn
- Install pre-commit hooks and dependencies locally
cd frontend yarn
- If you already have
- Install Python dependencies locally for linting
- Install Python 3.9
- (Optional, but recommended) Create a virtual environment in the root folder
indok-web
python -m venv .venv source .venv/bin/activate
- Install Python dependencies locally
pip install -r backend/requirements/local.txt
The frontend runs on http://localhost:3000, and the backend on http://localhost:8000. The GraphQL API endpoint is http://localhost:8000/graphql. The admin panel is available at http://localhost:8000/admin.
Environment variables are automatically loaded, but secrets are not stored in the repository.
- Create
.env
and.env.local
inbackend/
andfrontend/
, respectively. - Contact maintainers in order to get the necessary secrets, alternatively, if you're a member of Rubberdøk, check the #dev channel on Slack.
- Make sure to restart either container after making changes to
.env*
The project has error logging through Sentry, and can be accessed by authenticating with Github SSO.
See CONTRIBUTING.
The app is deployed through AWS ECS.
- E2E testing through Cypress, publicly accessible.
- Code coverage through Codecov, accessible with Github SSO.
- Domains managed through domene.shop.
- Postmark as e-mail service, contact an administrator for access.
- Vipps, contact an administrator for access.
- Feide, contact an administrator for access.
- AWS for various services, contact an administrator for access.
- Google Workspace for account management, contact an administrator for access.
- Slack for communication, available with a rubberdok.no domain.
indokntnu.no is powered by: