This is where the frontend components are located. The components are divided into two categories: `pages` and `pieces`. **Mithril.js** uses `pages` to render the main content of the website, while `pieces` are used to render smaller components that are used in multiple places. `pieces` then are embedded into `pages`.
# Portal: this service can fit so many services in it!
Aren't you tired of having to remember shortlinks or URLs for all the services offered by the Fachschaft? Does it embarrass you to always ask about the agenda of a Fachschaftssitzung, because you never worked with a Taiga implementation? How was the shortlink to Sturacloud again? Are you overwhelmed by 19 (and counting, **fast**) different services offered by the Fachschaft, the Institute and the University?
**Well, that is a thing of the past!** That's why we created Portal, a service-aggregating meta-service for over-zealous students like us, the FS Coli.
...
...
@@ -15,16 +14,15 @@ If you are a rather visual learner, we got you covered:

## What can you do with Portal?
Most importantly, you can access all the services that the Fachschaft offers in one place. Also, Portal offers
+ a neat LDAP integration
+ a Taiga (fsco.li/todo) integration
+ even a f*cking GitLab integration (we are so proud of this one)
+ an user-friendly interface
+ a responsive design (mostly)
- a neat LDAP integration
- a Taiga (fsco.li/todo) integration
- even a f\*cking GitLab integration (we are so proud of this one)
- an user-friendly interface
- a responsive design (mostly)
# If you are a contributor...
...
...
@@ -82,15 +80,18 @@ db.session.add(l)
db.session.commit()
exit()
```
The app should run without problems now.
Also, if you are using an Apple device, please deactivate the "AirPlay Receiver" as it might cause problems with the LDAP connection.
---
#### Important:
Alembic must always be up to date in order to update the database schema.
Please run `alembic upgrade head` after pulling changes from the repository.
---
## How to move around in this repo
...
...
@@ -120,7 +121,6 @@ Here you can find the CSS files for the frontend. The main CSS file is `main.css
Here you can find the documentation for the API in its respective versions.
API specifications (`openapi-spec.yaml`) are written in OpenAPI 3.0.0 and are located in the `/api/{version}` folder.
#### `/portal/static/img`: Frag nicht, was für Bilder. Einfach Bilder. I won't translate this.
What did you expect?
...
...
@@ -131,14 +131,13 @@ Lol, that should actually .
It contains all the JavaScript files that are responsible for the frontend interactions.
### `/portal/templates`
These are the HTML files that Flask renders. They are written in Jinja2, which is a template engine for Python.
### `.py`-files
+`__init__.py`: Fortunately, explaining this was not a Prog2 exam question
+`db_config.py`: [TODO] Have fun, Jakob. Database configuration (arcane magic).
+`main.py`: The Flask server is in here
+`problem_details.py`: RFC 7807-compliant problem details responses for the API.
-`__init__.py`: Fortunately, explaining this was not a Prog2 exam question
-`db_config.py`: [TODO] Have fun, Jakob. Database configuration (arcane magic).
-`main.py`: The Flask server is in here
-`problem_details.py`: RFC 7807-compliant problem details responses for the API.