https://github.com/buathiertom/apishop
Site e-commerce avec API dotnet et front react
https://github.com/buathiertom/apishop
api-rest dotnet postgresql vite
Last synced: 3 months ago
JSON representation
Site e-commerce avec API dotnet et front react
- Host: GitHub
- URL: https://github.com/buathiertom/apishop
- Owner: BuathierTom
- Created: 2025-07-07T14:52:27.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-07-16T08:51:24.000Z (3 months ago)
- Last Synced: 2025-07-17T12:06:31.513Z (3 months ago)
- Topics: api-rest, dotnet, postgresql, vite
- Language: C#
- Homepage: https://apishop.buathier-tom.fr
- Size: 109 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ApiShop
`ApiShop` est une application e-commerce complète composée d’une API REST back-end en ASP.NET Core (C#) et d’un front-end React/TypeScript.
## 📂 Structure du projet
```
ApiShop.sln
├── back/
│ ├── ApiShop.Business/ ← Logique métier (services)
│ ├── ApiShop.Common/ ← Objets partagés (DTO, DAO, Requests)
│ ├── ApiShop.DataAccess/ ← Accès base de données (repositories, migrations)
│ └── ApiShop.WebApi/ ← API principale (controllers, Program.cs)
├── front/
│ ├── public/
│ └── src/
│ ├── api/
│ ├── components/
│ ├── context/
│ ├── hooks/
│ ├── pages/
│ ├── types/
│ ├── App.tsx
│ ├── index.css
│ ├── main.tsx
│ └── vite.config.ts
```## 🚀 Fonctionnalités Back-End
### 👤 Utilisateurs
* Inscription
* Connexion sécurisée
* Rôle par défaut : `Client`
* Promotion d’utilisateur### 🛍️ Produits
* CRUD complet (`GET`, `POST`, `PUT`, `DELETE`)
* Filtrage par catégorie### 📂 Catégories
* CRUD catégories
* Gestion de catégories parent/enfant### 🛒 Panier
* Ajout, modification quantité, suppression
### 📦 Commandes
* Création commande avec articles
* Historique commandes par utilisateur
* Modification statut commande (`Pending`, `Paid`, etc.)## 🛠️ Démarrage du Back-End
### Prérequis
* [.NET 9 SDK](https://dotnet.microsoft.com/download)
* PostgreSQL
* [EF Core CLI](https://learn.microsoft.com/ef/core/cli/dotnet)```bash
dotnet tool install --global dotnet-ef
```### Configuration connexion BDD
```bash
dotnet user-secrets init
dotnet user-secrets set "ConnectionStrings:ApiShop" "Host=localhost;Port=5432;Database=ApiShop;Username=postgres;Password=yourPassword"
```### Migration et lancement
```bash
dotnet ef database update -s ApiShop.WebApi
dotnet run --project ApiShop.WebApi
```## ⚛️ Fonctionnalités Front-End (React + TypeScript)
* Pages produits, panier, commandes, authentification
* Gestion du panier en contexte React
* Composants UI avec TailwindCSS## 🛠️ Démarrage du Front-End
### Prérequis
* [Node.js 20+](https://nodejs.org/en/download/)
* npm ou yarn### Installer dépendances
```bash
cd front
npm install
```### Lancer en mode dev
```bash
npm run dev
```L’app est accessible sur `http://localhost:5173`.
## 🧩 Liens importants
* API (Swagger non déployé) : `https://api.apishop.buathier-tom.fr`
* Front-End React : `https://buathier-apishop.vercel.app/`## 📦 Déploiement
* **Back-End**
Déployé sur **Render** avec la base de données PostgreSQL hébergée sur **NeonDB**.* **Front-End**
Déployé sur **Vercel**, optimisé pour les performances et la distribution rapide.## 📝 Notes
* Sécurité : Swagger désactivé en production (via `if (app.Environment.IsDevelopment())` dans `Program.cs`)
* Gestion des rôles pour admin back-office en développement (non intégré en prod)
* Base de données PostgreSQL avec migrations EF Core