summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgarder500 <jeremy27.clara22@gmail.com>2025-10-26 14:05:25 +0100
committergarder500 <jeremy27.clara22@gmail.com>2025-10-26 14:05:25 +0100
commitfa2b7c9bf4b83ca71b3af525d37721f2e6e4e659 (patch)
tree782d19fd26b7900b7a029fb7fd9f0e42a2619748
parent57dd1077ef027c083b6b688b384b66b36431b738 (diff)
Ajout de la structure de projet initiale avec des fichiers .gitkeep et le fichier main.go
-rw-r--r--.gitkeep0
-rw-r--r--cmd/.gitkeep0
-rw-r--r--cmd/server/.gitkeep0
-rw-r--r--cmd/server/main.go1
-rw-r--r--docs/.gitkeep0
-rw-r--r--docs/ARCHITECTURE.md72
-rw-r--r--internal/.gitkeep0
-rw-r--r--internal/api/.gitkeep0
-rw-r--r--internal/api/handlers/.gitkeep0
-rw-r--r--internal/api/routes/.gitkeep0
-rw-r--r--internal/config/.gitkeep0
-rw-r--r--internal/config/config.go1
-rw-r--r--internal/database/.gitkeep0
-rw-r--r--internal/middleware/.gitkeep0
-rw-r--r--internal/models/.gitkeep0
-rw-r--r--internal/models/organization/.gitkeep0
-rw-r--r--internal/models/project/.gitkeep0
-rw-r--r--internal/models/user/.gitkeep0
-rw-r--r--internal/services/.gitkeep0
-rw-r--r--internal/services/auth/.gitkeep0
-rw-r--r--internal/services/project/.gitkeep0
-rw-r--r--internal/services/user/.gitkeep0
-rw-r--r--migrations/.gitkeep0
-rw-r--r--pkg/.gitkeep0
-rw-r--r--scripts/.gitkeep0
-rw-r--r--tests/.gitkeep0
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