You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
146 lines
4.2 KiB
146 lines
4.2 KiB
<div align = center>
|
|
|
|
<img src="Documentation/Images/Banner-AllIn.png" />
|
|
|
|
---
|
|
|
|

|
|

|
|

|
|

|
|

|
|
|
|
### API - ALL IN !
|
|
|
|
*Contexte* : Api pour le projet universitaire de troisieme année (B.U.T Informatique de Clermont-Ferrand) nommé **All In**.
|
|
|
|
# Répartition du gitlab
|
|
|
|
[**Sources**](Sources) : **Code de l'application**
|
|
|
|
[**Documentation**](Documentation) : **Documentation de l'application**
|
|
|
|
👉 [**Solution de l'application**](Sources/AllIn.sln)
|
|
|
|
|
|
## Diagramme de classes du modèle
|
|
|
|
```mermaid
|
|
classDiagram
|
|
direction LR;
|
|
|
|
class LargeImage{
|
|
+/Base64 : string
|
|
}
|
|
|
|
class User{
|
|
+/ Id : string
|
|
+/ Pseudo : string
|
|
+/ Mail : string
|
|
+/ Password : string
|
|
+ CreationDate : DateTime
|
|
+ AllCoins : int
|
|
~ AddGroup(group : Group) bool
|
|
~ RemoveGroup(group : Group) bool
|
|
}
|
|
User --> "1" LargeImage : Image
|
|
Group --> "1" LargeImage : Image
|
|
|
|
class Bet{
|
|
+/ Id : string
|
|
+/ Title : string
|
|
+/ Name : string
|
|
+/ Choices : List<string>
|
|
+/ Theme: string
|
|
+/ Status: bool
|
|
+ Description : string
|
|
+ StartDate : DateTime
|
|
+ EndDate : DateTime
|
|
}
|
|
Bet --> "*" User : Dictionary~User,Mise~
|
|
|
|
class Mise{
|
|
+ Cost : int
|
|
+ Choice : string
|
|
}
|
|
|
|
class Group{
|
|
+/ Id : string
|
|
+/ Name : string
|
|
+ CreationDate : DateTime
|
|
}
|
|
User --> "*" Group : groups
|
|
```
|
|
|
|
## Diagramme de classes du modèle
|
|
```mermaid
|
|
classDiagram
|
|
direction LR;
|
|
class IGenericDataManager~T~{
|
|
<<interface>>
|
|
GetNbItems() Task~int~
|
|
GetItems(index : int, count : int, orderingPropertyName : string?, descending : bool) Task~IEnumerable~T~~
|
|
GetItemById(id: string)
|
|
GetNbItemsByName(substring : string)
|
|
GetItemsByName(substring : string, index : int, count : int, orderingPropertyName : string?, descending : bool) Task~IEnumerable~T~~
|
|
UpdateItem(oldItem : T, newItem : T) Task~T~~
|
|
AddItem(item : T) Task~T~
|
|
DeleteItem(item : T) Task~bool~
|
|
}
|
|
class IUsersManager{
|
|
<<interface>>
|
|
GetItemByMail(mail : string)
|
|
GetNbItemsByGroup(group : Group)
|
|
GetItemsByGroup(group : Group, index : int, count : int, orderingPropertyName : string?, descending : bool) Task~IEnumerable~T~~
|
|
GetNbItemsByAllCoins(allCoins : int)
|
|
GetItemsByAllCoins(allCoins : int, index : int, count : int, orderingPropertyName : string?, descending : bool) Task~IEnumerable~T~~
|
|
}
|
|
class IBetsManager{
|
|
<<interface>>
|
|
GetNbItemsByUser(user : User?)
|
|
GetItemsByUser(user : User?, index : int, count : int, orderingPropertyName : string?, descending : bool) Task~IEnumerable~Bet?~~
|
|
GetNbItemsByDescription(description : string)
|
|
GetItemsByDescription(description : string, index : int, count : int, orderingPropertyName : string?, descending : bool) Task~IEnumerable~Bet?~~
|
|
}
|
|
class IGroupsManager{
|
|
<<interface>>
|
|
}
|
|
|
|
IGenericDataManager~User?~ <|.. IUsersManager : T--User?
|
|
IGenericDataManager~Bet?~ <|.. IBetsManager : T--Bet?
|
|
IGenericDataManager~Group?~ <|.. IGroupsManager : T--Group?
|
|
class IDataManager{
|
|
<<interface>>
|
|
}
|
|
IUsersManager <-- IDataManager : UsersMgr
|
|
IBetsManager <-- IDataManager : BetsMgr
|
|
IGroupsManager <-- IDataManager : GroupsMgr
|
|
```
|
|
|
|
## Diagramme de classes simplifié du Stub
|
|
```mermaid
|
|
classDiagram
|
|
direction TB;
|
|
|
|
IDataManager <|.. StubData
|
|
|
|
UsersManager ..|> IUsersManager
|
|
StubData --> UsersManager
|
|
|
|
BetsManager ..|> IBetsManager
|
|
StubData --> BetsManager
|
|
|
|
GroupsManager ..|> IGroupsManager
|
|
StubData --> GroupsManager
|
|
|
|
StubData --> "*" User
|
|
StubData --> "*" Bet
|
|
StubData --> "*" Group
|
|
```
|
|
</div>
|
|
|
|
<div align = right>
|
|
<a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/4.0/"><img alt="Licence Creative Commons" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-nd/4.0/88x31.png" /></a>
|
|
<right>
|
|
|
|
</div> |