+
+
diff --git a/docs/contact.md b/docs/contact.md
index 749ea40..1a8be78 100644
--- a/docs/contact.md
+++ b/docs/contact.md
@@ -1,3 +1,15 @@
# Contact
-At this moment the only thing that this module does is rendering the contact page, which is just a static HTML page.
-Perhaps at a later moment, this could contain a contact form.
\ No newline at end of file
+The website makes use of contact forms. With the help of these forms people can send directly a message to either the
+entire Future Factory, or just individual teams.
+
+When a message gets send from the home page, it is sent to all the teams, whereas when a message is send through a team
+page it will only end up at that specific team.
+
+In order to clean all the data and make it safe for processing we use the `ContactForm` object, using a Django
+[Form](https://docs.djangoproject.com/en/4.1/topics/forms/).
+
+The `SendMessage` view, located in `main_site/views.py` takes care of actually sending the email to the correct
+destination. At first the form is populated with the data and it is checked. If safe, an email is created and send.
+A message indicating that the mail was successfully send will be shown to the user.
+
+In case the form contains any error, the user will be made aware of these errors. Asking them to fix it.
\ No newline at end of file
diff --git a/docs/events.md b/docs/events.md
index eddcfdf..3cfec3a 100644
--- a/docs/events.md
+++ b/docs/events.md
@@ -1,21 +1,27 @@
# Events
-An event is something that happened (or will happen) at the Future Factory. Events are small articles where we share
-what happened and what was achieved during such event or activity.
+An event is some form of activity that starts on a given time and date.
-## Database model
-Every event is saved in the database, lets take a look at the model that is used.
+## Models
+There is a single [model](https://docs.djangoproject.com/en/4.1/topics/db/models/) available in this app, which
+represents a model.
-| Attribute | Description |
-|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| `title` | The title of this event or article |
-| `summary` | A short piece of text that is only shown on the home page and on the news list page |
-| `description` | The article itself. Also this field is a `QuillField`, allowing for rich-text. |
-| `image` | The image is used as a cover image and shown next to the article |
-| `visible` | When you temporarily want to hide this article, but not permenantly remove it, you can set this to `False`. Note: Direct links to this article will keep working |
-| `event_date` | The start date of this event |
+| Attribute | Description |
+|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `title` | The title of this event |
+| `summary` | A short piece of text that is only shown on the home page and on the events list page |
+| `description` | The main text description this event. Also this field is a `QuillField`, which provides the user a rich-text editor |
+| `image` | The image is used as a cover image and shown with this event. |
+| `visible` | When you temporarily want to hide this event, but not permanently remove it, you can set this to `False`. Note: Direct links to this article will keep working |
+| `date` | The start date and time of this event |
+| `location` | Where this event is supposed to take place |
-Next to default functions this model has a property named `description_html`. This strips of the new paragraphs after
-someone has pressed on enter in the rich-text editor, causing a lot of unnecessary white space.
+## Views
+For events, both the [`DetailView`](https://docs.djangoproject.com/en/4.1/ref/class-based-views/generic-display/#detailview)
+and the [`ListView`](https://docs.djangoproject.com/en/4.1/ref/class-based-views/generic-display/#listview) have been
+implemented. The list view sorts the events based on their start date / time. A
+[paginator](https://docs.djangoproject.com/en/4.1/topics/pagination/) makes sure that every page has a maximum of eight
+events on display at the same time.
-## Page rendering
-When events are displayed in a list, they are first filtered based on their visibility. Then sorted on the event date.
\ No newline at end of file
+## Templates
+Next to your basic detail and list view templates an event also has a `event_thumbnail.html` template. This template
+generates a single event item. This template is both used in the ListView as on the main page.
\ No newline at end of file
diff --git a/docs/facts.md b/docs/facts.md
new file mode 100644
index 0000000..e7a8db6
--- /dev/null
+++ b/docs/facts.md
@@ -0,0 +1,15 @@
+# Facts
+A fact is a HTML component that contains a big icon and two short pieces of text. They both appear on the main page and
+each team page.
+
+## Models
+There are two models that work with facts, the first one named `Fact` represents a single one.
+
+| Attribute | Description |
+|:----------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `icon` | An icon is one of the many [Themify Icons](https://themify.me/themify-icons). Icons can be picked from a dropdown menu. Hence all the available choices are generated within the code |
+| `value` | This is the big number indicating this fact (maximum of 10 characters) |
+| `context` | Some text that is able to give some context to this number (maximum of 50 characters) |
+
+Another model that uses facts is a `TeamFact` which inherits the previously described `Fact` model, adding a team to it.
+This model is located in the [teams](teams.md) app.
\ No newline at end of file
diff --git a/docs/images/classdiagram.jpg b/docs/images/classdiagram.jpg
new file mode 100644
index 0000000..73310f7
Binary files /dev/null and b/docs/images/classdiagram.jpg differ
diff --git a/docs/images/classdiagram.png b/docs/images/classdiagram.png
deleted file mode 100644
index 89bf28d..0000000
Binary files a/docs/images/classdiagram.png and /dev/null differ
diff --git a/docs/images/hexagons.jpg b/docs/images/hexagons.jpg
new file mode 100644
index 0000000..2d7e9df
Binary files /dev/null and b/docs/images/hexagons.jpg differ
diff --git a/docs/index.md b/docs/index.md
index 13ba3ff..a947d09 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -1,9 +1,9 @@
# Future Factory Website Documentation
Over here you can find the documentation for the Future Factory website.
-The website is written in Python using the [Django](https://www.djangoproject.com/) framework. At the moment RoboTeam
-Twente is the lead maintainer on this website and is also responsible for hosting it. However, this should not discourage
-other people from wanting to help and work on this site.
+The website is written in Python using the [Django](https://www.djangoproject.com/) framework. At the moment
+[Tom Meulenkamp](https://github.com/supertom01/) from RoboTeam Twente is the lead maintainer on this website and is also
+responsible for hosting it. However, this should not discourage other people from wanting to help and work on this site.
The code structure attempts to make it easy to search through and is written in a way that should not be too complex for
someone with some experience with the Django framework.
@@ -12,32 +12,53 @@ Although the code has some documentation incorporated into it, this documentatio
allowing one to understand on how all of these components work together.
## Table of Contents
-* [Teams](teams.md)
* [Events](events.md)
+* [Facts](facts.md)
+* [News Articles](news_articles.md)
* [Partners](partners.md)
+* [Teams](teams.md)
* [Contact](contact.md)
* [Settings](settings.md)
+* [Styling](styling.md)
## General Information
-Most entities have their own module (also known as app) within this project. This allows for a clear distribution
-between models, views and other stuff.
+Most entities have their own module (also known as [app](https://docs.djangoproject.com/en/4.1/ref/applications/))
+within this project. This allows for a clear distribution between models, views and other stuff.
### Class Diagram
-![Class Diagram](images/classdiagram.png)
+![Class Diagram](images/classdiagram.jpg)
-### Navigation bar highlighting
-When you're somewhere on the website, your current location is highlighted in the navigation bar. This is done with the
-help of the context variable, `current`, that is passed on by each view. The constant strings that are assigned to it
-are hardcoded. An example from the TeamView looks like this:
+### Templates
+Each page that one sees is built with the Django [template](https://docs.djangoproject.com/en/4.1/ref/templates/) system.
+Every page extends the `basis.html` template that can be found in `/templates`. This template handles the basis HTML
+structure such as meta tags, favicons, the navigation bar and the footer. Each template then
+[inherits](https://docs.djangoproject.com/en/4.1/ref/templates/language/#template-inheritance) this basic template and
+is able to fill out the following blocks:
-```python
- def get_context_data(self, **kwargs):
- context = super(self).get_context_data(**kwargs)
- context['current'] = "teams"
- return context
-```
+* description
+ * Contains a short description about this specific page. This will be shown in the Google search results.
+* title
+ * The title of the current page.
+* head
+ * Additional HTML that should go into the head, for example additional stylesheets.
+ * Also, these blocks usually contain additional CSS, for example to override the default background picture in the
+ header.
+* nav_bar
+ * By default the navigation bar only contains the logo and home button. Any additional buttons should be added with
+ the following HTML:
+ ```html
+
+ ```
+* content
+ * The actual contents of this page. This will mainly contain `` elements.
+* scripts
+ * Any JavaScript that should be loaded into the page, this will be placed after the `