feat: review backend and frontend

- update to the latest version of Java/SpringBoot
- update to the latest version NuxtJS
- add account/password update
- add account creation
- add account password reset
- add bundle to regroup questions and add default questions on user creation
- add bundle creation
This commit is contained in:
2024-07-03 15:55:34 +02:00
parent f86d794239
commit b6e86f0641
207 changed files with 5570 additions and 40453 deletions

View File

@@ -9,4 +9,11 @@ $orange_hover: #DC6A00;
$gray_1: #F6F6F6;
$gray_2: #E8E8E8;
$gray_3: #9B9B9B;
$gray_4: #666666;
$gray_4: #666666;
$info_text: $gray_4;
$info_background: $gray_1;
$warn_text: #FFFFFF;
$warn_background: #f44336;
$success_text: #eafbf6;
$success_background: #2ed6a0;

View File

@@ -1,3 +1,8 @@
@import "_color";
@import "_font";
@import "_spacing";
@mixin border-shadow() {
box-shadow: inset 0 0 0.5px 1px hsla(0, 0%,
100%, 0.075),
0 0 0 1px hsla(0, 0%, 0%, 0.05),
0 0.3px 0.4px hsla(0, 0%, 0%, 0.02),
0 0.9px 1.5px hsla(0, 0%, 0%, 0.045),
0 3.5px 6px hsla(0, 0%, 0%, 0.09);
}

View File

@@ -0,0 +1,86 @@
@import "main";
.modal {
position: fixed;
display: flex;
justify-content: center;
align-items: end;
visibility: hidden;
inset: 0;
z-index: 1040;
@media only screen and (min-width: $breakpoint) {
align-items: center;
}
&.visible {
visibility: visible;
}
&-content {
display: flex;
flex-direction: column;
gap: 24px;
background: $white;
position: relative;
margin: 0;
padding: 64px 24px;
height: 90%;
width: 100%;
@media only screen and (min-width: $breakpoint) {
border-radius: 8px;
padding: 64px;
margin: 32px;
max-width: $breakpoint;
height: 80%;
}
&-header {
margin-block-end: 8px;
h1 {
margin: 0 0 $xx_small 0;
}
.close_modal {
position: absolute;
right: 0;
top: 0;
display: flex;
justify-content: space-between;
align-items: center;
gap: 16px;
border: 0;
cursor: pointer;
background: none;
font-size: 1rem;
padding: 20px;
}
}
&-body {
display: flex;
flex-direction: column;
gap: $xxx_small;
overflow: auto;
overflow-x: hidden;
}
&-footer {
display: flex;
gap: $xxx_small;
.button:not(.button-back) {
flex: 1;
}
}
}
&-overlay {
position: absolute;
inset: 0;
background-color: rgba($color: #000000, $alpha: 0.25);
z-index: -1;
}
}

View File

@@ -1,62 +0,0 @@
@import "_font";
%flex-center {
display: flex;
justify-content: center;
align-items: center;
}
%main-text {
font-size: $main-font-size;
font-style: normal;
font-weight: 400;
line-height: 2.1rem;
letter-spacing: 0;
}
%main-text-2 {
font-size: $main-font-size;
font-style: normal;
font-weight: 400;
line-height: 1.8rem;
letter-spacing: 0;
}
%secondary-text {
font-size: $secondary-font-size;
font-style: normal;
font-weight: 400;
line-height: 1.625rem;
letter-spacing: 0;
}
%secondary-text-bold {
@extend %secondary-text;
font-weight: 700;
}
%tertiary-text {
font-size: $tertiary-font-size;
font-style: normal;
font-weight: 400;
line-height: 1.625rem;
letter-spacing: 0;
}
%tertiary-text-bold {
@extend %tertiary-text;
font-weight: bold;
}
%main-text-bold {
@extend %main-text;
font-weight: 700;
}
%main-text-small {
font-size: $small-font-size;
font-style: normal;
font-weight: 400;
line-height: 1.425rem;
letter-spacing: 0;
}

View File

@@ -1,16 +1,19 @@
$page_width: 1200px;
$content_width: 920px;
$header_height: 78px;
$footer_height: 220px;
$max_z_index: 999;
$xxx_small: .5rem;
$xx_small: .75rem;
$x_small: 1.5rem;
$small: 2rem;
$medium: 3rem;
$x_medium: 3.75rem;
$xx_medium: 5rem;
$large: 7.5rem;
$x_large: 11.875rem;
$xx_large: 16.25rem;
$xxxx_small: 4px;
$xxx_small: 8px;
$xx_small: 12px;
$x_small: 16px;
$small: 24px;
$medium: 32px;
$x_medium: 48px;
$xx_medium: 60px;
$xxx_medium: 80px;
$large: 120px;
$x_large: 190px;
$xx_large: 260px;

View File

@@ -1,45 +1,63 @@
@import "_color";
@import "_font";
@import "_placeholders";
@import "_mixin";
@import "_spacing";
$breakpoint: 1024px;
* {
*,
::after,
::before {
box-sizing: border-box;
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
font-family: $font-primary;
background: $white;
color: $gray_4;
body {
scroll-behavior: smooth;
overflow-x: hidden;
color: $gray_4;
font-family: $font-primary;
background: $white; // #ededf0
}
a {
color: $light_blue;
text-decoration: none;
&:hover {
text-decoration: underline;
.main-content {
min-height: calc(100vh - $footer_height - $header_height);
max-width: $content_width;
margin: 0 auto;
@media only screen and (max-width: $breakpoint) {
margin: 0 $small;
}
}
a, .button-link {
color: $gray_4;
font-size: 1rem;
font-weight: 500;
text-decoration: underline;
&:hover {
text-decoration: none;
}
}
.button-link {
border: none;
background: none;
cursor: pointer;
}
a, p, .button-link {
font-family: $font-primary;
}
ul, ol {
margin: $xx_small $small;
margin: 0;
}
h1 {
font-size: 1.75rem;
line-height: 2.125rem;
margin: $medium 0 $small 0;
margin: $medium 0;
color: $black;
text-align: center;
@media only screen and (max-width: $breakpoint) {
margin: $xx_small;
margin: $xx_small 0;
}
}
@@ -48,7 +66,7 @@ h2 {
font-size: 2rem;
line-height: 2.75rem;
letter-spacing: -0.02em;
margin: $x-medium 0 $medium 0;
margin: $xx_medium 0 $x_medium 0;
@media only screen and (max-width: $breakpoint) {
margin: $xx_small;
@@ -60,7 +78,7 @@ h3 {
font-weight: bold;
font-size: 1.75rem;
line-height: 2rem;
margin: $small 0;
margin: $medium 0;
}
p + p { margin-top: 1.5rem }
@@ -70,17 +88,27 @@ hr {
margin: $xxx_small 0;
}
.form {
display: flex;
flex-direction: column;
gap: $xxx_small;
margin-block: $medium;
&__help {
margin-block: $medium $small;
}
}
.bold {
font-weight: bold;
}
.button {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-decoration: none;
padding: 0 32px;
line-height: 60px;
padding: $x_small $small;
color: $white;
border-radius: 100px;
border: none;
@@ -94,7 +122,18 @@ hr {
}
.button-container {
margin: $medium 0;
display: flex;
justify-content: center;
gap: $xx_small;
margin: $x_medium 0;
.button {
flex: 1;
}
.button-back {
flex: 0;
}
}
.button.orange:hover:not(:disabled) {
@@ -126,16 +165,33 @@ hr {
cursor: default;
}
.button-icon {
border: none;
background: none;
cursor: pointer;
padding: $xxx_small;
font-size: 1.5rem;
line-height: 24px;
border-radius: $xxx_small;
&:hover, &:active {
background: $gray_1;
}
}
input[type=text],
input[type=email],
input[type=password] {
background: $gray_1;
border: 1px solid $gray_2;
border-radius: 100px;
line-height: 50px;
padding: 0 $x_small;
padding: 0 $small;
}
input[type=text]::placeholder,
input[type=email]::placeholder,
input[type=password]::placeholder {
color: $gray_3;
}
@@ -150,41 +206,3 @@ input[type=password]::placeholder {
.text-center {
text-align: center;
}
.content {
max-width: none;
display: grid;
grid-template-columns: [fullWidth-start] 1rem
[left-start] 1fr
[article-start right-start] minmax(20ch, $content_width)
[article-end left-end] 1fr
[right-end] 1rem [fullWidth-end];
}
.content > * {
grid-column: article;
}
.full-width {
grid-template-columns: minmax(20ch, $content_width);
justify-content: center;
grid-column: fullWidth;
display: grid;
padding: $small;
}
@supports (grid-template-columns: subgrid) {
.full-width {
grid-template-columns: subgrid;
padding: 0;
}
.full-width-center {
grid-column: article;
}
.full-width-right {
grid-column: right;
text-align: right;
}
.full-width-left {
grid-column: left;
}
}