https://github.com/zeabdelkhalek/tp-igl-api
TP IGL Partie Back end
https://github.com/zeabdelkhalek/tp-igl-api
docker docker-compose laravel mysql php phpunit selenium-webdriver
Last synced: 2 months ago
JSON representation
TP IGL Partie Back end
- Host: GitHub
- URL: https://github.com/zeabdelkhalek/tp-igl-api
- Owner: zeabdelkhalek
- Created: 2019-12-30T17:02:35.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-02-02T10:01:58.000Z (over 3 years ago)
- Last Synced: 2025-06-03T21:00:57.561Z (about 1 year ago)
- Topics: docker, docker-compose, laravel, mysql, php, phpunit, selenium-webdriver
- Language: PHP
- Homepage:
- Size: 6.14 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# TP-IGL-API
## Lancer l'application Localement :
### Exigences
| Exigence | Version |
| ------------------------------------------- | ------- |
| [PHP](https://www.php.net) | `7.3+` |
| [Composer](https://getcomposer.org) | `1.9+` |
| [MySQL](https://www.mysql.com) | `8.0+` |
| [Git](https://git-scm.com/downloads) | `2.0+` |
Exécutez les commandes suivantes pour vérifier les versions installées actuelles:
```bash
php --version
git --version
composer --version
```
Pour MySQL Vous pouvez exécuter cette commande dans MySQL Command Line Client:
```bash
select version() ;
```
1. Cloner le repository :
```bash
git clone https://github.com/AbdelkhalekESI/TP-IGL-API
```
2. Installer les dépendances nécessaires :
```bash
composer install
```
3. Créez votre fichier `.env` à partir de` .env.example` et générez une clé d'application (n'oubliez pas de le configurer avec la base de données):
```bash
cp .env .env.example
php artisan key:generate
```
4. Migrer la base de données et la remplir avec des données aléatoires:
```bash
php artisan migrate
php artisan db:seed
```
5. Enfin, exécuter le serveur :
```bash
php artisan serve
```
6. Accéder à l'application via : `http://127.0.0.1:8000`
## Lancer l'application en utilisant Docker :
Obtenir une instance locale de ce projet est très rapide en utilisant [docker-compose](https://docs.docker.com/compose/) et [docker](https://www.docker.com/products/docker-desktop) :
1. Cloner le repository :
```bash
git clone https://github.com/AbdelkhalekESI/TP-IGL-API/
```
2. Créer l'image de l'application et exécuter les services (Nginx,MySQL,app) :
```bash
docker-compose up -d --build database && docker-compose up -d --build web && docker-compose up -d --build app
```
3. Assurer vous que vous êtes entrain d'exécuter cette commande dans le dossier racine de votre application laravel. Cette commande crée vos images de conteneur et les démarre enfin. Si tout se déroule comme prévu, vous devrier pouvoir accéder à votre application laravel exécutée à l'intérieur de votre conteneur à: `http://127.0.0.1:80`
## Les Tests Unitaires
Dans cette application on a testé les requêtes avec `phpunit` , les requêtes qui sont testées sont :
- Ajouter un nouveau étudiant
- Afficher les informations d'un étudiant
- Modifier les informations d'un étudiant
- Supprimer un étudiant
Pour lancer les tests on exécute cette commande :
```bash
cd vendor/bin
phpunit ../../tests/APIs/StudentApiTest
```
## Tests Avec Selenium
### Exigences
| Exigence | Version |
| ------------------------------------------- | ------- |
| [Python](https://www.python.org/downloads/) | `3.6+` |
| [Pip](https://pypi.org/project/pip/) | `9.0+` |
Avant de commancer vérifier bien que l'application est en cours d'éxecution (Front-end et Back-end) et lancer ces commandes :
```bash
cd Selenium-Test
pip install selenium
python script.py
```
## Documentation des API
Vous pouvez accéder à la documentation généré automatiquement à partir de [Laravel Swagger](https://github.com/mtrajano/laravel-swagger) ici `http://127.0.0.1:8000/api/docs`
et voici une capture pour tous les APIs du Model Etudiant :
