diff options
| author | garder500 <jeremy27.clara22@gmail.com> | 2025-10-26 14:05:25 +0100 |
|---|---|---|
| committer | garder500 <jeremy27.clara22@gmail.com> | 2025-10-26 14:05:25 +0100 |
| commit | fa2b7c9bf4b83ca71b3af525d37721f2e6e4e659 (patch) | |
| tree | 782d19fd26b7900b7a029fb7fd9f0e42a2619748 | |
| parent | 57dd1077ef027c083b6b688b384b66b36431b738 (diff) | |
Ajout de la structure de projet initiale avec des fichiers .gitkeep et le fichier main.go
| -rw-r--r-- | .gitkeep | 0 | ||||
| -rw-r--r-- | cmd/.gitkeep | 0 | ||||
| -rw-r--r-- | cmd/server/.gitkeep | 0 | ||||
| -rw-r--r-- | cmd/server/main.go | 1 | ||||
| -rw-r--r-- | docs/.gitkeep | 0 | ||||
| -rw-r--r-- | docs/ARCHITECTURE.md | 72 | ||||
| -rw-r--r-- | internal/.gitkeep | 0 | ||||
| -rw-r--r-- | internal/api/.gitkeep | 0 | ||||
| -rw-r--r-- | internal/api/handlers/.gitkeep | 0 | ||||
| -rw-r--r-- | internal/api/routes/.gitkeep | 0 | ||||
| -rw-r--r-- | internal/config/.gitkeep | 0 | ||||
| -rw-r--r-- | internal/config/config.go | 1 | ||||
| -rw-r--r-- | internal/database/.gitkeep | 0 | ||||
| -rw-r--r-- | internal/middleware/.gitkeep | 0 | ||||
| -rw-r--r-- | internal/models/.gitkeep | 0 | ||||
| -rw-r--r-- | internal/models/organization/.gitkeep | 0 | ||||
| -rw-r--r-- | internal/models/project/.gitkeep | 0 | ||||
| -rw-r--r-- | internal/models/user/.gitkeep | 0 | ||||
| -rw-r--r-- | internal/services/.gitkeep | 0 | ||||
| -rw-r--r-- | internal/services/auth/.gitkeep | 0 | ||||
| -rw-r--r-- | internal/services/project/.gitkeep | 0 | ||||
| -rw-r--r-- | internal/services/user/.gitkeep | 0 | ||||
| -rw-r--r-- | migrations/.gitkeep | 0 | ||||
| -rw-r--r-- | pkg/.gitkeep | 0 | ||||
| -rw-r--r-- | scripts/.gitkeep | 0 | ||||
| -rw-r--r-- | tests/.gitkeep | 0 |
26 files changed, 74 insertions, 0 deletions
diff --git a/.gitkeep b/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/.gitkeep diff --git a/cmd/.gitkeep b/cmd/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/cmd/.gitkeep diff --git a/cmd/server/.gitkeep b/cmd/server/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/cmd/server/.gitkeep diff --git a/cmd/server/main.go b/cmd/server/main.go new file mode 100644 index 0000000..06ab7d0 --- /dev/null +++ b/cmd/server/main.go @@ -0,0 +1 @@ +package main diff --git a/docs/.gitkeep b/docs/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docs/.gitkeep diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md new file mode 100644 index 0000000..935f596 --- /dev/null +++ b/docs/ARCHITECTURE.md @@ -0,0 +1,72 @@ +# Architecture Sovrabase API + +Ce document décrit l'architecture des dossiers et fichiers pour l'API Sovrabase. + +## Structure générale + +``` +sovrabase/ +├── cmd/ # Points d'entrée de l'application +│ └── server/ # Serveur principal +├── internal/ # Code interne (non exporté) +│ ├── api/ # Gestion des API +│ │ ├── handlers/ # Handlers HTTP +│ │ └── routes/ # Définition des routes +│ ├── config/ # Configuration de l'application +│ ├── database/ # Connexion et gestion base de données (PostgreSQL, Redis...) +│ ├── middleware/ # Middlewares personnalisés +│ ├── models/ # Structures de données +│ │ ├── organization/ # Modèles liés aux organisations +│ │ ├── project/ # Modèles liés aux projets +│ │ └── user/ # Modèles liés aux utilisateurs +│ └── services/ # Logique métier +│ ├── auth/ # Service d'authentification +│ ├── project/ # Service de gestion des projets +│ └── user/ # Service de gestion des utilisateurs +├── pkg/ # Code réutilisable (exporté) +├── migrations/ # Scripts de migration base de données +├── scripts/ # Scripts utilitaires +├── docs/ # Documentation +└── tests/ # Tests unitaires et d'intégration +``` + +## Conventions + +### Organisation du code + +- **`cmd/`** : Contient les points d'entrée principaux (ex: `cmd/server/main.go`) +- **`internal/`** : Code privé au projet, non importable depuis l'extérieur +- **`pkg/`** : Code réutilisable et exportable + +### Séparation des responsabilités + +- **Handlers** (`internal/api/handlers/`) : Gestion des requêtes HTTP +- **Routes** (`internal/api/routes/`) : Définition et organisation des routes +- **Services** (`internal/services/`) : Logique métier +- **Models** (`internal/models/`) : Structures de données et validation +- **Middleware** (`internal/middleware/`) : Fonctionnalités transversales (auth, logging, etc.) + +### Nommage + +- Fichiers : `snake_case.go` (ex: `user_handler.go`) +- Packages : `lowercase` (ex: `user`, `auth`) +- Structs : `PascalCase` (ex: `User`, `Project`) +- Fonctions exportées : `PascalCase` +- Fonctions privées : `camelCase` + +## Points d'entrée + +- **`cmd/server/main.go`** : Point d'entrée principal du serveur API + +## Dépendances externes + +Les dépendances Go seront gérées via `go.mod` et incluront : +- Framework HTTP (Gin, Echo, ou net/http standard) +- ORM/Database driver (GORM, sqlx, etc.) +- JWT, Redis, etc. + +## Tests + +- Tests unitaires dans le même package que le code testé +- Tests d'intégration dans `tests/` +- Convention de nommage : `*_test.go` diff --git a/internal/.gitkeep b/internal/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/internal/.gitkeep diff --git a/internal/api/.gitkeep b/internal/api/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/internal/api/.gitkeep diff --git a/internal/api/handlers/.gitkeep b/internal/api/handlers/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/internal/api/handlers/.gitkeep diff --git a/internal/api/routes/.gitkeep b/internal/api/routes/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/internal/api/routes/.gitkeep diff --git a/internal/config/.gitkeep b/internal/config/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/internal/config/.gitkeep diff --git a/internal/config/config.go b/internal/config/config.go new file mode 100644 index 0000000..d912156 --- /dev/null +++ b/internal/config/config.go @@ -0,0 +1 @@ +package config diff --git a/internal/database/.gitkeep b/internal/database/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/internal/database/.gitkeep diff --git a/internal/middleware/.gitkeep b/internal/middleware/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/internal/middleware/.gitkeep diff --git a/internal/models/.gitkeep b/internal/models/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/internal/models/.gitkeep diff --git a/internal/models/organization/.gitkeep b/internal/models/organization/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/internal/models/organization/.gitkeep diff --git a/internal/models/project/.gitkeep b/internal/models/project/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/internal/models/project/.gitkeep diff --git a/internal/models/user/.gitkeep b/internal/models/user/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/internal/models/user/.gitkeep diff --git a/internal/services/.gitkeep b/internal/services/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/internal/services/.gitkeep diff --git a/internal/services/auth/.gitkeep b/internal/services/auth/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/internal/services/auth/.gitkeep diff --git a/internal/services/project/.gitkeep b/internal/services/project/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/internal/services/project/.gitkeep diff --git a/internal/services/user/.gitkeep b/internal/services/user/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/internal/services/user/.gitkeep diff --git a/migrations/.gitkeep b/migrations/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/migrations/.gitkeep diff --git a/pkg/.gitkeep b/pkg/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/pkg/.gitkeep diff --git a/scripts/.gitkeep b/scripts/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/scripts/.gitkeep diff --git a/tests/.gitkeep b/tests/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/.gitkeep |
