*Road Map**1 DataBase*<aside> 💡 Architecture
</aside>
The architecture might change in the future, although we do need to have a very good idea of which data we need, and which tables can be useful.
This should also affect the usage of our application, how are users going to use the applications, and what are the needs to complete the project?

*2 42Api & Authentication*<aside> 💡 Integrate oAuth2.0 using 42Api
</aside>
Authenticate users, and fetch all the needed infomation.
Handle errors and promisses.
Show the user status and maybe an option to refresh user information.

*3 Seeding & Endpoints*<aside> 💡 Seed the Database and develop a job which keeps the data up to date.
</aside>
Seed the database and Test our endpoints.
We can explore some testing tools for django, in any case, make sure that the data-flow of the REST API is reliable.
Decide which endpoints can be useful.
Should we have settings, to customize the CV? For example: show_image: boolean, show_soft_skills: boolean, hide_dates: boolean.
GET /profile/:user_id
Returns all the user usefull information.
Ex:
{
id: number,
intra_id: number,
intra_username: string,
first_name: string,
last_name: string,
lvl: number,
avatar_img: string
projects: [
{
id: number,
intra_id: number,
name: string,
description: text,
group: boolean,
tier: number,
area: {
id: number,
name: string,
description: text,
svg_icon: string
},
cursus: {
id: number,
name: string
},
skils: [
{
id: number,
name: string,
description: text,
image: string
}
]
},
{
id: number,
intra_id: number,
name: string,
...
},
{...}
]
}
*4 CV Design & FrontEnd*<aside> 💡 Design and generate the CV
</aside>
Adapt the Design which was first proposed and replicate it with either pure css or using js if needed.
Concider Using ChartJS, Chartkick, canvas, svg_generator tools, or even python image processor or imagemagick.
Perhaps develop an interface for the admin, or the user to see other people or other CV’S.
Create themes for the CV’s, this could be easy depending on how we implement the CV generation.
We could have a Palette and some background images, fonts and layouts to pick from.
Consider having an interface to generate the Themes, so admins can generate new themes.

*Attachments*
<?xml version="1.0" encoding="utf-8" ?>
<!-- SQL XML created by WWW SQL Designer, <https://github.com/ondras/wwwsqldesigner/> -->
<!-- Active URL: <https://sql.toad.cz/?keyword=default> -->
<sql>
<datatypes db="mssql">
<group label="Integer" color="rgb(238,238,170)">
<type label="TinyInt" length="0" sql="tinyint" re="INT" quote="" bytes="1" note="Integer data: 0 to 255"/>
<type label="SmallInt" length="0" sql="smallint" re="INT" quote="" bytes="2" note="Integer data: -32,768 to 32,767"/>
<type label="Int" length="0" sql="int" re="INT" quote="" bytes="4" note="Integer data: -2,147,483,648 to 2,147,483,647"/>
<type label="BigInt" length="0" sql="bigint" re="INT" quote="" bytes="8" note="Integer data: -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807"/>
</group>
<group label="Monetary" color="rgb(238,238,170)">
<type label="Money" length="0" sql="money" re="FLOAT" quote="" bytes="8" note="Integer data: -922,337,203,685,477.5808 to 922,337,203,685,477.5807"/>
<type label="SmallMoney" length="0" sql="smallmoney" re="FLOAT" quote="" bytes="4" note="-214,748.3648 to 214,748.3647"/>
</group>
<group label="Numeric" color="rgb(238,238,170)">
<type label="Real" length="0" sql="real" re="FLOAT" quote="" bytes="4" note="Floating precision number data: -3.402823E+38 to 3.402823E+38"/>
<type label="Float" length="0" sql="float" re="FLOAT" quote="" bytes="8" note="Floating precision number data: -4.94E+324 to 4.94E+324"/>
<type label="Decimal" length="1" sql="decimal" re="DEC" quote="" bytes="n*" note="Fixed precision and scale numeric data: -10^38 +1 to 10^38 -1 (decimal and numeric are synonyms)"/>
<type label="Numeric" length="1" sql="numeric" re="DEC" quote="" bytes="n*" note="Fixed precision and scale numeric data: -10^38 +1 to 10^38 -1 (decimal and numeric are synonyms)"/>
</group>
<group label="Character" color="rgb(255,200,200)">
<type label="Char" length="0" sql="char" quote="'" bytes="n" note="Fixed-length character data with a maximum length of 8,000 characters"/>
<type label="Varchar" length="1" sql="varchar" quote="'" bytes="m <= n" note="Variable-length data with a maximum of 8,000 characters"/>
<type label="Text" length="1" sql="text" quote="'" bytes="<= 2,147,483,647" note="Variable-length data with a maximum length of 2,147,483,647 characters"/>
<type label="XML" length="0" sql="xml" quote="'" bytes="n" note="XML"/>
</group>
<group label="Unicode Character" color="rgb(255,200,200)">
<type label="nChar" length="0" sql="nchar" quote="'" bytes="n" note="Fixed-length Unicode data with a maximum length of 4,000 characters"/>
<type label="nVarchar" length="1" sql="nvarchar" quote="'" bytes="m <= n" note="Variable-length Unicode data with a maximum length of 4,000 characters"/>
<type label="nText" length="1" sql="ntext" quote="'" bytes="<= 2,147,483,647" note="Variable-length Unicode data with a maximum length of 1,073,741,823 characters"/>
</group>
<group label="Date & Time" color="rgb(200,255,200)">
<type label="Datetime" length="0" sql="datetime" quote="" bytes="8" note="Jan 1, 1753 to Dec 31, 9999"/>
<type label="SmallDateTime" length="0" sql="smalldatetime" quote="" bytes="4" note="Jan 1, 1900 to Dec 31, 2079"/>
</group>
<group label="Binary" color="rgb(200,200,255)">
<type label="Binary" length="0" sql="binary" quote="'" bytes="n" note="Fixed-length binary data with a maximum length of 8,000 bytes"/>
<type label="Varbinary" length="1" sql="varbinary" quote="'" bytes="m <= n" note="Variable-length binary data with a maximum length of 8,000 bytes"/>
</group>
<group label="Miscellaneous" color="rgb(200,220,255)">
<type label="Bit" length="0" sql="bit" quote="" bytes="1" note="Boolean: 1 or 0"/>
<type label="Image" length="1" sql="image" re="BLOB" quote="" bytes="0 to 2,147,483,647" note="Variable-length binary data with a maximum length of 2,147,483,647 bytes"/>
<type label="Timestamp" length="0" sql="timestamp" quote="" bytes="8" note="Locally unique binary number updated as a row gets updated"/>
<type label="SQL Variant" length="1" sql="sql_variant" quote="" bytes="" note="Stores any datatype except text, ntext, image, timestamp"/>
<type label="Uniqueidentifier" length="1" sql="uniqueidentifier" quote="" bytes="16" note="GUID"/>
</group>
</datatypes><table x="839" y="415" name="CursusUser">
<row name="id" null="1" autoincrement="1">
<datatype>tinyint</datatype>
<default>NULL</default></row>
<row name="id_User" null="1" autoincrement="0">
<datatype>tinyint</datatype>
<default>NULL</default><relation table="User" row="id" />
</row>
<row name="id_Cursus" null="1" autoincrement="0">
<datatype>tinyint</datatype>
<default>NULL</default><relation table="Cursus" row="id" />
</row>
<row name="level" null="1" autoincrement="0">
<datatype>int</datatype>
<default>NULL</default></row>
<row name="intra_id" null="1" autoincrement="0">
<datatype>tinyint</datatype>
<default>NULL</default></row>
<row name="begin_at" null="1" autoincrement="0">
<datatype>datetime</datatype>
<default>NULL</default></row>
<key type="PRIMARY" name="">
<part>id</part>
</key>
</table>
<table x="1160" y="123" name="CursusUserSkill">
<row name="id" null="1" autoincrement="1">
<datatype>tinyint</datatype>
<default>NULL</default></row>
<row name="level" null="1" autoincrement="0">
<datatype>int</datatype>
<default>NULL</default></row>
<row name="id_CursusSkill" null="1" autoincrement="0">
<datatype>tinyint</datatype>
<default>NULL</default><relation table="CursusSkill" row="id" />
</row>
<row name="id_CursusUser" null="1" autoincrement="0">
<datatype>tinyint</datatype>
<default>NULL</default><relation table="CursusUser" row="id" />
</row>
<key type="PRIMARY" name="">
<part>id</part>
</key>
</table>
<table x="1291" y="742" name="User">
<row name="id" null="1" autoincrement="1">
<datatype>tinyint</datatype>
<default>NULL</default></row>
<row name="intra_id" null="1" autoincrement="0">
<datatype>tinyint</datatype>
<default>NULL</default></row>
<row name="first_name" null="1" autoincrement="0">
<datatype>varchar</datatype>
<default>NULL</default></row>
<row name="last_name" null="1" autoincrement="0">
<datatype>varchar</datatype>
<default>NULL</default></row>
<row name="email" null="1" autoincrement="0">
<datatype>varchar</datatype>
<default>NULL</default></row>
<row name="intra_url" null="1" autoincrement="0">
<datatype>varchar</datatype>
<default>NULL</default></row>
<row name="image_url" null="1" autoincrement="0">
<datatype>varchar</datatype>
<default>NULL</default></row>
<row name="updated_at" null="1" autoincrement="0">
<datatype>datetime</datatype>
<default>NULL</default></row>
<row name="new field" null="1" autoincrement="0">
<datatype>tinyint</datatype>
<default>NULL</default></row>
<key type="PRIMARY" name="">
<part>id</part>
</key>
</table>
<table x="885" y="196" name="Skill">
<row name="id" null="1" autoincrement="1">
<datatype>tinyint</datatype>
<default>NULL</default></row>
<row name="intra_id" null="1" autoincrement="0">
<datatype>tinyint</datatype>
<default>NULL</default></row>
<row name="name" null="1" autoincrement="0">
<datatype>varchar</datatype>
<default>NULL</default></row>
<row name="updated_at" null="1" autoincrement="0">
<datatype>datetime</datatype>
<default>NULL</default></row>
<key type="PRIMARY" name="">
<part>id</part>
</key>
</table>
<table x="104" y="41" name="Cursus">
<row name="id" null="1" autoincrement="1">
<datatype>tinyint</datatype>
<default>NULL</default></row>
<row name="intra_id" null="1" autoincrement="0">
<datatype>tinyint</datatype>
<default>NULL</default></row>
<row name="name" null="1" autoincrement="0">
<datatype>varchar</datatype>
<default>NULL</default></row>
<row name="kind" null="1" autoincrement="0">
<datatype>varchar</datatype>
<default>NULL</default></row>
<row name="updated_at" null="1" autoincrement="0">
<datatype>datetime</datatype>
<default>NULL</default></row>
<key type="PRIMARY" name="">
<part>id</part>
</key>
</table>
<table x="34" y="812" name="Project">
<row name="id" null="1" autoincrement="1">
<datatype>tinyint</datatype>
<default>NULL</default></row>
<row name="intra_id" null="1" autoincrement="0">
<datatype>tinyint</datatype>
<default>NULL</default></row>
<row name="description" null="1" autoincrement="0">
<datatype>varchar</datatype>
<default>NULL</default></row>
<row name="name" null="1" autoincrement="0">
<datatype>varchar</datatype>
<default>NULL</default></row>
<row name="exam" null="1" autoincrement="0">
<datatype>binary</datatype>
<default>NULL</default></row>
<row name="solo" null="1" autoincrement="0">
<datatype>binary</datatype>
<default>NULL</default></row>
<row name="updated_at" null="1" autoincrement="0">
<datatype>datetime</datatype>
<default>NULL</default></row>
<key type="PRIMARY" name="">
<part>id</part>
</key>
</table>
<table x="545" y="744" name="ProjectUser">
<row name="id" null="1" autoincrement="1">
<datatype>tinyint</datatype>
<default>NULL</default></row>
<row name="id_User" null="1" autoincrement="0">
<datatype>tinyint</datatype>
<default>NULL</default><relation table="User" row="id" />
</row>
<row name="id_Project" null="1" autoincrement="0">
<datatype>tinyint</datatype>
<default>NULL</default><relation table="Project" row="id" />
</row>
<row name="grade" null="1" autoincrement="0">
<datatype>int</datatype>
<default>NULL</default></row>
<row name="finished" null="1" autoincrement="0">
<datatype>binary</datatype>
<default>NULL</default></row>
<row name="updated_at" null="1" autoincrement="0">
<datatype>datetime</datatype>
<default>NULL</default></row>
<row name="finished_at" null="1" autoincrement="0">
<datatype>datetime</datatype>
<default>NULL</default></row>
<key type="PRIMARY" name="">
<part>id</part>
</key>
</table>
<table x="45" y="446" name="ProjectCursus">
<row name="id" null="1" autoincrement="1">
<datatype>tinyint</datatype>
<default>NULL</default></row>
<row name="id_Cursus" null="1" autoincrement="0">
<datatype>tinyint</datatype>
<default>NULL</default><relation table="Cursus" row="id" />
</row>
<row name="id_Project" null="1" autoincrement="0">
<datatype>tinyint</datatype>
<default>NULL</default><relation table="Project" row="id" />
</row>
<key type="PRIMARY" name="">
<part>id</part>
</key>
</table>
<table x="742" y="33" name="CursusSkill">
<row name="id" null="1" autoincrement="1">
<datatype>tinyint</datatype>
<default>NULL</default></row>
<row name="id_Cursus" null="1" autoincrement="0">
<datatype>tinyint</datatype>
<default>NULL</default><relation table="Cursus" row="id" />
</row>
<row name="id_Skill" null="1" autoincrement="0">
<datatype>tinyint</datatype>
<default>NULL</default><relation table="Skill" row="id" />
</row>
<key type="PRIMARY" name="">
<part>id</part>
</key>
</table>
</sql>