---
# System prepended metadata

title: '[ARCHITECTURE] Website structure'

---

# [ARCHITECTURE] Website structure

[![hackmd-github-sync-badge](https://hackmd.io/0dh9taMIQeidOYiwYMYEvg/badge)](https://hackmd.io/0dh9taMIQeidOYiwYMYEvg)

[TOC]

## API

### UrlShortener V1
```
url: https://redcraft.org/api/v1/urls
description: get list url
methode: GET
result: JSON:[
    shortened: {
        token: acces_name,
        url: string
    }
]
```

```
url: https://redcraft.org/api/v1/url
description: set list url
methode: POST
params post (JSON):
  - token: str, token to provider
  - shortened: str|null, choise shortened if null, hash is generate to shortene, 
  - url: str, url to redirect
result: 
    if err: JSON: [
        {
            'err': str err
        }
    ]
    if success: JSON: [
        {
            'response': True|,
            'shortened': shortened
        }
    ]
```

```
url: https://redcraft.org/r/<str:shortened>
description: redirect to url
methode: GET
```



### Skin V1
```
url: https://redcraft.org/api/v1/skin/template/<str:ref>
params url:
  - ref: uuid or username to player

description: get template to player
methode: GET
params get:
  - size: int, size to img skin
params:
  - size: int, size to img skin
  - outer: bool, if print outer in skin
return:
    if succes: img.png
    if error: JSON: {'err': err}
```

```
url: https://redcraft.org/api/v1/skin/head/<str:ref>
params url: {
    ref: uuid or username to player
}
description: get head to player
methode: GET
params:
  - size: int, size to img skin
  - outer: bool, if print outer in skin
return:
    if succes: img.png
    if error: JSON: {'err': err}
```

```
url: https://redcraft.org/api/v1/skin/body/<str:ref>
params url: {
    ref: uuid or username to player
}
description: get full skin face to player
methode get: GET
params:
  - size: int, size width to img skin
  - outer: bool, if print outer in skin
params:
  - size: int, size to img skin
  - outer: bool, if print outer in skin
return:
    if succes: img.png
    if error: JSON: {'err': err}
```

## Pages

### Home (MVP) :heavy_check_mark: 
Presentation of the server
- Welcome header
- Basic server presentation
- News
- Deeper presentation of the servers
- Staff list
### Contact (MVP) :heavy_check_mark: 
Form to send a message to the staff
First, a select

**Contact form**
- {pseudo}
- {discord_username}
- {message}
### Vote (MVP) :heavy_check_mark: 
List of all sites where you can vote for the server
### Stats :negative_squared_cross_mark: 
- Server statistics
- Player statistics (searching for them)
### Livemaps :negative_squared_cross_mark: 

### Rules & References (MVP) :heavy_check_mark: 
- Code of conduct
- Server rules
	- Access to the wall of shame page
- Licenses
Minecraft and Discord Server Rules Overview
References used for creating the website (& server ?)
- [Fontawesome license](https://fontawesome.com/license)


### Donations (MVP) :writing_hand: 
#### Donation form
- {sum}
- {pseudo}
	- Shown only if is_anonymous is false
- {is_anonymous}
- {is_gift}
- {reciever}
	- Shown only if is_gift is true
- {message}
- {bonus_code}

The gift code is checked when the submit button is clicked.
A cookie is set with all the informations about the donation.

If the page is loaded with the cookie, all the informations in the form are set.

#### Donation informations


#### Donation processed :heavy_check_mark: 
The donation has been made sucessfuly. Returns pseudo, message and sum.
A button allows the user to go back to the donation page.  
The cookie containing all the information is deleted.
#### Donation failed :heavy_check_mark:
The donation has failed, button to go back to donation page
(when the button is clicked, the form in the donation page is filled)
### (not in navbar) Staff :negative_squared_cross_mark: 
Accessible from homepage

### (not in navbar) Articles (MVP) :negative_squared_cross_mark: 
Page regrouping all the articles of the server
--> Reference : https://www.codeply.com/go/u7fEDdUbXg/bootstrap-article-list
Accessible from homepage

### (not in navbar) Wall of shame :negative_squared_cross_mark:
List of all the banned people.
Accessible from rules page

### (not in navbar)about and FAQ (MVP) :writing_hand:
Gives a presentaiton of the RedCraft project with a FAQ
Accesible from the Footer

### (not in navbar) recommandations for alternate browsers :negative_squared_cross_mark: 
If the website is visited by an old browser (IE)

### (not in navbar) Staff & conbtributors (MVP) :negative_squared_cross_mark:
- Administrators
- Contributors
- Active staff
The page is available trough the homepage, in the "staff" section

