# Portal: this service can fit so many services in it!
## Setup
### with docker
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 [fsco.li](fsco.li).
## What is Portal?
Portal is a service that aggregates all the services that the Fachschaft offers. It is a web application that is accessible via the URL [fsco.li/portal](https://portal.fachschaft.cl.uni-heidelberg.de). It is a service that is designed to be user-friendly and easy to use. It is a service that is designed to be accessible to all students, regardless of their technical background and cognitive abilities.
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)
# If you are a contributor...
## I want to setup portal on my local machine!
First you gotta clone this repository.
We advise you to do this with Gitlabs VS Code integration, but you can also use the terminal.
The important JavaScript files can be found in `/portal/static/js/`!
This is mostly Mithril.js.
## `/portal/static/js/components`
[TODO] furtherly explain the components
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`.