Noam Nedelec-Salmon [email protected]
Alexis Le Floch [email protected]
Version de Symfony : 4.4
Version de PHP : 8
Version de React : 17.0
Version de npm : 8.4
Serveur de base de données : MySQL ou MariaDB
Code React dans /front
Code Symfony dans /back
export MySQL de la base de données dans /bdd
+----------------------------+
| Tables_in_projet_framework |
+----------------------------+
| echouage |
| espece |
| zone |
+----------------------------+
Table echouage :
+-----------+------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| date | int | NO | | NULL | |
| nombre | int | NO | | NULL | |
| zone_id | int | YES | MUL | NULL | |
| espece_id | int | YES | MUL | NULL | |
+-----------+------+------+-----+---------+----------------+
Table espece :
+--------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| espece | varchar(50) | NO | | NULL | |
+--------+-------------+------+-----+---------+----------------+
Table zone :
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| zone | varchar(50) | NO | | NULL | |
+-------+-------------+------+-----+---------+----------------+
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/projet_framework_cir3/back/projet_cir3_symf/public
ErrorLog ${APACHE_LOG_DIR}/echouages-error.log
CustomLog ${APACHE_LOG_DIR}/echouages-access.log combined
Header set Access-Control-Allow-Origin "*"
<Directory /var/www/html/projet_framework_cir3/back/projet_cir3_symf/public>
DirectoryIndex index.php
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI}::$0 ^(/.+)/(.*)::\2$
RewriteRule .* - [E=BASE:%1]
RewriteCond %{HTTP:Authorization} .+
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0]
RewriteCond %{ENV:REDIRECT_STATUS} =""
RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ %{ENV:BASE}/index.php [L]
</IfModule>
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
RedirectMatch 307 ^/$ /index.php/
</IfModule>
</IfModule>
</Directory>
</VirtualHost>
Listen 8080
<VirtualHost *:8080>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/projet_framework_cir3/front/build
ErrorLog ${APACHE_LOG_DIR}/echouages-error.log
CustomLog ${APACHE_LOG_DIR}/echouages-access.log combined
</VirtualHost>
(Ces vhosts étaient utilisés sur une machine de développement, il était donc important de différencier les ports car l'accès aux deux se faisait via "localhost")
Seule la racine est utilisée en front, il n'y a qu'une seule page.
- / : accueil du back et menu de recherche
- /recherche?zone=
{zone_id}
&espece={espece_id}
: recherche d'une espèce dans une zone sélectionnée- zone_id: l'identifiant de la zone, ou 0 pour toutes les zones
- espece_id : l'identifiant de l'espèce
- /echouage : liste des échouages
- /echouage/new : ajouter un échouage
- /echouage/
{id}
: détails d'un échouage - /echouage/
{id}
/edit : modifier un échouage
- /espece : liste des espèces
- /espece/new : ajouter une espèce
- /espece/
{id}
: détails d'une espèce - /espece/
{id}
/edit : modifier une espèce
- /zone : liste des zones
- /zone/new : ajouter une zone
- /zone/
{id}
: détails d'une zone - /zone/
{id}
/edit : modifier une zone
/api
[
str,
]
/api/echouages/espece/{espece_id}
[
{
"date": int,
"zone": str,
"zone_id": int,
"nombre": int
},
]
/api/echouages/espece/{espece_id}
/zone/{zone_id}
[
{
"date": int,
"zone": str,
"zone_id": int,
"nombre": int
},
]
/api/echouages/espece/{espece_id}
/zones/date
{
"{date}": {
"{zone_id}": int,
},
}
/api/echouages/espece/{espece_id}
/zone/{zone_id}
/date
{
"{date}": {
"{zone_id}": int
},
}
les échouages d'une espsèce pour chaque date parmi les dates minimales et maximales groupés par date et affichés par zone
/api/echouages/espece/{espece_id}
/zones/date/{min}
/{max}
{
"{date}": {
"{zone_id}": int,
},
}
les échouages d'une espèce dans une zone pour chaque date parmi les dates minimales et maximales groupés par date et affichés par zone
/api/echouages/espece/{espece_id}
/zone/{zone_id}
/date/{min}
/{max}
{
"{date}": {
"{zone_id}": int
},
}
/api/espece
[
[
{
"id": int,
"espece": str
}
],
]
/api/espece/{espece_id}
[
[
{
"id": int,
"espece": str
}
]
]
/api/espece/{espece_id}
/date/
[
{
"date": int
},
]
/api/espece/{espece_id}
/date/min
int
/api/espece/{espece_id}
/date/max
int
/api/zone
[
[
{
"id": int,
"zone": str
}
],
]
/api/zone/{zone_id}
[
[
{
"id": int,
"zone": str
}
]
]