Merge branch 'master' of https://codefirst.iut.uca.fr/git/ShopNCook/ShopNCook into xaml/homePage
After Width: | Height: | Size: 259 B |
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 512 B |
After Width: | Height: | Size: 931 B |
After Width: | Height: | Size: 977 B |
After Width: | Height: | Size: 896 B |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.2 KiB |
@ -0,0 +1,154 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||||
|
x:Class="ShoopNCook.Views.LoginPage"
|
||||||
|
Title="LoginPage"
|
||||||
|
BackgroundColor="{StaticResource BackgroundPrimary}">
|
||||||
|
<VerticalStackLayout
|
||||||
|
Margin="20, 75, 20, 20">
|
||||||
|
<Label
|
||||||
|
FontFamily="PoppinsBold"
|
||||||
|
Text="Welcome Back!"
|
||||||
|
FontSize="32"
|
||||||
|
TextColor="{StaticResource TextColorPrimary}"
|
||||||
|
FontAttributes="Bold"
|
||||||
|
VerticalOptions="Start"
|
||||||
|
HorizontalOptions="Start" />
|
||||||
|
|
||||||
|
<Label
|
||||||
|
Text="Fill in your credentials or continue with social media"
|
||||||
|
FontFamily="PoppinsBold"
|
||||||
|
FontSize="20"
|
||||||
|
TextColor="{StaticResource TextColorSecondary}"
|
||||||
|
VerticalOptions="Start"
|
||||||
|
HorizontalOptions="Start" />
|
||||||
|
|
||||||
|
<Border
|
||||||
|
StrokeThickness="1"
|
||||||
|
Stroke="{StaticResource BackgroundPrimary}"
|
||||||
|
StrokeShape="RoundRectangle 12"
|
||||||
|
Margin="0,30,0,20"
|
||||||
|
>
|
||||||
|
<Grid
|
||||||
|
Padding="5"
|
||||||
|
BackgroundColor="{StaticResource BackgroundSecondary}"
|
||||||
|
ColumnDefinitions="Auto,Auto,*"
|
||||||
|
>
|
||||||
|
|
||||||
|
<Image
|
||||||
|
Grid.Column="1"
|
||||||
|
Source="email_icon.svg">
|
||||||
|
</Image>
|
||||||
|
<Entry
|
||||||
|
StyleId="{x:Null}"
|
||||||
|
Grid.Column="2"
|
||||||
|
Placeholder="Mail address"
|
||||||
|
TextColor="Black"></Entry>
|
||||||
|
</Grid>
|
||||||
|
</Border>
|
||||||
|
|
||||||
|
<Border
|
||||||
|
StrokeThickness="1"
|
||||||
|
Stroke="{StaticResource BackgroundPrimary}"
|
||||||
|
StrokeShape="RoundRectangle 12"
|
||||||
|
>
|
||||||
|
<Grid
|
||||||
|
Padding="5"
|
||||||
|
BackgroundColor="{StaticResource BackgroundSecondary}"
|
||||||
|
ColumnDefinitions="Auto,Auto,*,Auto">
|
||||||
|
|
||||||
|
<Image
|
||||||
|
Grid.Column="1"
|
||||||
|
Source="password_icon.svg">
|
||||||
|
</Image>
|
||||||
|
<Entry
|
||||||
|
Grid.Column="2"
|
||||||
|
Placeholder="Password"
|
||||||
|
TextColor="Black"
|
||||||
|
IsPassword="True"></Entry>
|
||||||
|
<ImageButton
|
||||||
|
Grid.Column="3"
|
||||||
|
Source="visibility_off.svg"
|
||||||
|
HeightRequest="30">
|
||||||
|
</ImageButton>
|
||||||
|
</Grid>
|
||||||
|
</Border>
|
||||||
|
|
||||||
|
<Label
|
||||||
|
TextColor="{StaticResource TextColorSecondary}"
|
||||||
|
HorizontalOptions="End">
|
||||||
|
Forgot Password ?
|
||||||
|
</Label>
|
||||||
|
|
||||||
|
|
||||||
|
<Border
|
||||||
|
Margin="0, 30, 0, 0"
|
||||||
|
Stroke="{StaticResource BackgroundPrimary}"
|
||||||
|
StrokeShape="RoundRectangle 12">
|
||||||
|
<Label
|
||||||
|
HeightRequest="50"
|
||||||
|
BackgroundColor="{StaticResource ActionButton}"
|
||||||
|
HorizontalTextAlignment="Center"
|
||||||
|
VerticalTextAlignment="Center">
|
||||||
|
LOG IN</Label>
|
||||||
|
</Border>
|
||||||
|
|
||||||
|
<HorizontalStackLayout
|
||||||
|
HorizontalOptions="Center"
|
||||||
|
Margin="0, 20, 0, 0"
|
||||||
|
Spacing="6">
|
||||||
|
<Rectangle
|
||||||
|
BackgroundColor="Gray"
|
||||||
|
WidthRequest="15"
|
||||||
|
HeightRequest="3"/>
|
||||||
|
<Label
|
||||||
|
TextColor="{StaticResource TextColorSecondary}">
|
||||||
|
Or continue with</Label>
|
||||||
|
<Rectangle
|
||||||
|
BackgroundColor="Gray"
|
||||||
|
WidthRequest="15"
|
||||||
|
HeightRequest="3"/>
|
||||||
|
</HorizontalStackLayout>
|
||||||
|
|
||||||
|
<HorizontalStackLayout
|
||||||
|
Margin="0, 20, 0, 0"
|
||||||
|
Spacing="15"
|
||||||
|
HorizontalOptions="Center">
|
||||||
|
<Border
|
||||||
|
HeightRequest="75"
|
||||||
|
WidthRequest="75"
|
||||||
|
BackgroundColor="#e9f4ff"
|
||||||
|
StrokeShape="RoundRectangle 25 25 25 25"
|
||||||
|
Stroke="{StaticResource BackgroundPrimary}">
|
||||||
|
<Image
|
||||||
|
HeightRequest="50"
|
||||||
|
Source="google_logo.svg"/>
|
||||||
|
</Border>
|
||||||
|
|
||||||
|
<Border
|
||||||
|
HeightRequest="75"
|
||||||
|
WidthRequest="75"
|
||||||
|
BackgroundColor="#4460a0"
|
||||||
|
StrokeShape="RoundRectangle 25 25 25 25"
|
||||||
|
Stroke="{StaticResource BackgroundPrimary}">
|
||||||
|
<Image
|
||||||
|
WidthRequest="40"
|
||||||
|
Source="facebook_logo.svg"/>
|
||||||
|
</Border>
|
||||||
|
</HorizontalStackLayout>
|
||||||
|
|
||||||
|
<HorizontalStackLayout
|
||||||
|
Spacing="4"
|
||||||
|
HorizontalOptions="Center"
|
||||||
|
Margin="0, 20, 0, 0">
|
||||||
|
<Label
|
||||||
|
TextColor="{StaticResource TextColorPrimary}">
|
||||||
|
New User?</Label>
|
||||||
|
<Label
|
||||||
|
FontAttributes="Bold"
|
||||||
|
TextColor="{StaticResource TextColorPrimary}">
|
||||||
|
Create Account</Label>
|
||||||
|
</HorizontalStackLayout>
|
||||||
|
|
||||||
|
</VerticalStackLayout>
|
||||||
|
</ContentPage>
|
@ -0,0 +1,9 @@
|
|||||||
|
namespace ShoopNCook.Views;
|
||||||
|
|
||||||
|
public partial class LoginPage : ContentPage
|
||||||
|
{
|
||||||
|
public LoginPage()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,141 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||||
|
x:Class="ShoopNCook.Views.ProfilePage"
|
||||||
|
Title="ProfilePage"
|
||||||
|
BackgroundColor="{StaticResource BackgroundPrimary}">
|
||||||
|
|
||||||
|
<ScrollView>
|
||||||
|
<Grid
|
||||||
|
Margin="20"
|
||||||
|
RowDefinitions="Auto, Auto, Auto, *">
|
||||||
|
|
||||||
|
<!-- Profile label and return button -->
|
||||||
|
<Grid
|
||||||
|
Grid.Row="0"
|
||||||
|
RowDefinitions="Auto, *"
|
||||||
|
ColumnDefinitions="*, 1.5*"
|
||||||
|
Margin="0, 0, 0, 40">
|
||||||
|
<HorizontalStackLayout>
|
||||||
|
<ImageButton
|
||||||
|
Grid.Column="0"
|
||||||
|
|
||||||
|
HeightRequest="50"
|
||||||
|
WidthRequest="50"
|
||||||
|
Source="arrow_back.svg"/>
|
||||||
|
</HorizontalStackLayout>
|
||||||
|
<Label
|
||||||
|
Grid.Column="1"
|
||||||
|
FontSize="24"
|
||||||
|
TextColor="{StaticResource TextColorPrimary}"
|
||||||
|
Text="Profile"
|
||||||
|
FontFamily="PoppinsBold"
|
||||||
|
VerticalOptions="Center"/>
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
<!-- Profile picture and name -->
|
||||||
|
<Grid
|
||||||
|
Grid.Row="1"
|
||||||
|
RowDefinitions="*, Auto, Auto">
|
||||||
|
|
||||||
|
|
||||||
|
<Border
|
||||||
|
Grid.Row="0"
|
||||||
|
StrokeShape="RoundRectangle 10000"
|
||||||
|
MaximumHeightRequest="150"
|
||||||
|
MaximumWidthRequest="150"
|
||||||
|
HorizontalOptions="Center"
|
||||||
|
Stroke="{StaticResource BackgroundPrimary}"
|
||||||
|
BackgroundColor="{StaticResource BackgroundSecondary}">
|
||||||
|
<ImageButton
|
||||||
|
Grid.Row="0"
|
||||||
|
Source="default_profile_picture.png"/>
|
||||||
|
</Border>
|
||||||
|
|
||||||
|
<Label
|
||||||
|
Grid.Row="1"
|
||||||
|
FontSize="30"
|
||||||
|
HorizontalOptions="Center"
|
||||||
|
TextColor="{StaticResource TextColorPrimary}"
|
||||||
|
Text="%Profile_Name%"
|
||||||
|
FontFamily="PoppinsBold"/>
|
||||||
|
<Label
|
||||||
|
Grid.Row="2"
|
||||||
|
FontSize="16"
|
||||||
|
HorizontalOptions="Center"
|
||||||
|
TextColor="{StaticResource TextColorSecondary}"
|
||||||
|
Text="Profile settings"
|
||||||
|
FontFamily="PoppinsBold"/>
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
<!-- User inputs -->
|
||||||
|
<Grid
|
||||||
|
Grid.Row="2"
|
||||||
|
Margin="0, 20, 0, 0"
|
||||||
|
RowDefinitions="Auto, *, Auto, *">
|
||||||
|
<Label
|
||||||
|
Grid.Row="0"
|
||||||
|
Text="Name"
|
||||||
|
FontFamily="PoppinsBold"
|
||||||
|
TextColor="{StaticResource TextColorSecondary}"/>
|
||||||
|
|
||||||
|
<Border
|
||||||
|
Grid.Row="1"
|
||||||
|
StrokeShape="RoundRectangle 12"
|
||||||
|
Stroke="{StaticResource BackgroundSecondary}">
|
||||||
|
<Entry
|
||||||
|
TextColor="{StaticResource TextColorPrimary}"
|
||||||
|
PlaceholderColor="{StaticResource TextColorSecondary}"
|
||||||
|
BackgroundColor="{StaticResource BackgroundSecondary}"
|
||||||
|
Text="%Profile_Name%"
|
||||||
|
Placeholder="Place your name here"/>
|
||||||
|
</Border>
|
||||||
|
|
||||||
|
<Label
|
||||||
|
Grid.Row="2"
|
||||||
|
Text="Your Email"
|
||||||
|
FontFamily="PoppinsBold"
|
||||||
|
TextColor="{StaticResource TextColorSecondary}"/>
|
||||||
|
<Border
|
||||||
|
Grid.Row="3"
|
||||||
|
StrokeShape="RoundRectangle 12"
|
||||||
|
Stroke="{StaticResource BackgroundSecondary}">
|
||||||
|
<Entry
|
||||||
|
TextColor="{StaticResource TextColorPrimary}"
|
||||||
|
PlaceholderColor="{StaticResource TextColorSecondary}"
|
||||||
|
BackgroundColor="{StaticResource BackgroundSecondary}"
|
||||||
|
Text="%Profile_Mail%"
|
||||||
|
FontFamily="PoppinsBold"
|
||||||
|
Placeholder="Place your mail address here"/>
|
||||||
|
</Border>
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Save button -->
|
||||||
|
|
||||||
|
<VerticalStackLayout
|
||||||
|
Grid.Row="3"
|
||||||
|
VerticalOptions="End">
|
||||||
|
<Border
|
||||||
|
Margin="0, 30, 0, 0"
|
||||||
|
Stroke="{StaticResource BackgroundPrimary}"
|
||||||
|
StrokeShape="RoundRectangle 12">
|
||||||
|
<Label
|
||||||
|
HeightRequest="50"
|
||||||
|
BackgroundColor="{StaticResource ActionButton}"
|
||||||
|
HorizontalTextAlignment="Center"
|
||||||
|
VerticalTextAlignment="Center"
|
||||||
|
FontFamily="PoppinsBold"
|
||||||
|
Text="SAVE"/>
|
||||||
|
</Border>
|
||||||
|
</VerticalStackLayout>
|
||||||
|
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
</ScrollView>
|
||||||
|
|
||||||
|
|
||||||
|
</ContentPage>
|
@ -0,0 +1,9 @@
|
|||||||
|
namespace ShoopNCook.Views;
|
||||||
|
|
||||||
|
public partial class ProfilePage : ContentPage
|
||||||
|
{
|
||||||
|
public ProfilePage()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
@ -1 +0,0 @@
|
|||||||
,maxime,grospc,25.03.2023 11:50,file:///home/maxime/.config/libreoffice/4;
|
|
@ -0,0 +1,53 @@
|
|||||||
|
# Diagramme de séquence Shop&Cook
|
||||||
|
|
||||||
|
## Interactions entre Utilisateur, Shop&Cook et API
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
sequenceDiagram
|
||||||
|
participant Utilisateur
|
||||||
|
participant Shop&Cook
|
||||||
|
participant API
|
||||||
|
|
||||||
|
Utilisateur->>+Shop&Cook: Ouvre l'application
|
||||||
|
Shop&Cook->>+Utilisateur: Affiche l'écran de connexion
|
||||||
|
|
||||||
|
Utilisateur->>+Shop&Cook: Se connecte / S'inscrit
|
||||||
|
Shop&Cook->>+API: Valide les informations de connexion / inscription
|
||||||
|
API-->>-Shop&Cook: Retourne le résultat de la validation
|
||||||
|
Shop&Cook-->>-Utilisateur: Affiche l'écran d'accueil ou un message d'erreur
|
||||||
|
|
||||||
|
Utilisateur->>+Shop&Cook: Recherche des recettes avec filtres
|
||||||
|
Shop&Cook->>+API: Récupère les recettes filtrées
|
||||||
|
API-->>-Shop&Cook: Retourne les recettes filtrées
|
||||||
|
Shop&Cook-->>-Utilisateur: Affiche les recettes filtrées
|
||||||
|
|
||||||
|
Utilisateur->>+Shop&Cook: Aime/Ajoute aux favoris une recette
|
||||||
|
Shop&Cook->>+API: Met à jour le statut de la recette
|
||||||
|
API-->>-Shop&Cook: Confirme la mise à jour
|
||||||
|
Shop&Cook-->>-Utilisateur: Met à jour l'affichage de la recette
|
||||||
|
|
||||||
|
Utilisateur->>+Shop&Cook: Accède aux paramètres
|
||||||
|
Shop&Cook-->>-Utilisateur: Affiche les options de paramètres
|
||||||
|
|
||||||
|
Utilisateur->>+Shop&Cook: Change le thème/le mot de passe
|
||||||
|
Shop&Cook->>+API: Enregistre les modifications
|
||||||
|
API-->>-Shop&Cook: Confirme l'enregistrement
|
||||||
|
Shop&Cook-->>-Utilisateur: Met à jour l'affichage et confirme les modifications
|
||||||
|
|
||||||
|
Utilisateur->>+Shop&Cook: Clique sur une recette
|
||||||
|
Shop&Cook->>+API: Récupère les détails de la recette
|
||||||
|
API-->>-Shop&Cook: Retourne les détails de la recette
|
||||||
|
Shop&Cook-->>-Utilisateur: Affiche les détails de la recette
|
||||||
|
|
||||||
|
Utilisateur->>+Shop&Cook: Choisit le nombre de personnes et ajoute au panier
|
||||||
|
Shop&Cook-->>-Utilisateur: Met à jour le panier
|
||||||
|
|
||||||
|
Utilisateur->>+Shop&Cook: Planifie un repas pour un jour de la semaine
|
||||||
|
Shop&Cook-->>-Utilisateur: Met à jour le planning
|
||||||
|
|
||||||
|
Utilisateur->>+Shop&Cook: Génère la liste de courses
|
||||||
|
Shop&Cook->>+API: Récupère les ingrédients nécessaires
|
||||||
|
API-->>-Shop&Cook: Retourne la liste des ingrédients
|
||||||
|
Shop&Cook-->>-Utilisateur: Affiche la liste de courses
|
||||||
|
|
||||||
|
```
|
Before Width: | Height: | Size: 205 KiB After Width: | Height: | Size: 205 KiB |
Before Width: | Height: | Size: 229 KiB After Width: | Height: | Size: 229 KiB |
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 72 KiB |
Before Width: | Height: | Size: 151 KiB After Width: | Height: | Size: 151 KiB |
Before Width: | Height: | Size: 143 KiB After Width: | Height: | Size: 143 KiB |
Before Width: | Height: | Size: 122 KiB After Width: | Height: | Size: 122 KiB |
Before Width: | Height: | Size: 179 KiB After Width: | Height: | Size: 179 KiB |
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 80 KiB |
Before Width: | Height: | Size: 467 KiB After Width: | Height: | Size: 467 KiB |
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 75 KiB |
Before Width: | Height: | Size: 799 KiB After Width: | Height: | Size: 799 KiB |