Merge branch 'master' of https://codefirst.iut.uca.fr/git/ShopNCook/ShopNCook into xaml/homePage
@ -1,21 +1,21 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
<Shell
|
<Shell
|
||||||
x:Class="ShoopNCook.AppShell"
|
x:Class="ShoopNCook.AppShell"
|
||||||
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||||
xmlns:local="clr-namespace:ShoopNCook"
|
xmlns:local="clr-namespace:ShoopNCook"
|
||||||
xmlns:views="clr-namespace:ShoopNCook.Views"
|
xmlns:views="clr-namespace:ShoopNCook.Views"
|
||||||
Shell.FlyoutBehavior="Disabled">
|
Shell.NavBarIsVisible="False">
|
||||||
|
|
||||||
<TabBar>
|
<TabBar>
|
||||||
<ShellContent
|
<ShellContent
|
||||||
Title="Home"
|
Title="Home"
|
||||||
ContentTemplate="{DataTemplate local:MainPage}"
|
ContentTemplate="{DataTemplate local:MainPage}"
|
||||||
Route="MainPage" />
|
Route="MainPage" />
|
||||||
|
|
||||||
<ShellContent
|
<ShellContent
|
||||||
Title="Test Page"
|
Title="Login Page"
|
||||||
ContentTemplate="{DataTemplate local:MainPage}"
|
ContentTemplate="{DataTemplate views:LoginPage}"
|
||||||
Route="MainPage" />
|
Route="LoginPage" />
|
||||||
</TabBar>
|
</TabBar>
|
||||||
</Shell>
|
</Shell>
|
||||||
|
@ -0,0 +1,15 @@
|
|||||||
|
namespace ShoopNCook;
|
||||||
|
|
||||||
|
public class MainPage : ContentPage
|
||||||
|
{
|
||||||
|
public MainPage()
|
||||||
|
{
|
||||||
|
Content = new VerticalStackLayout
|
||||||
|
{
|
||||||
|
Children = {
|
||||||
|
new Label { HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center, Text = "Welcome to .NET MAUI!"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
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="White"
|
||||||
|
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="White"
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
}
|
@ -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 |