{"id":48326162,"url":"https://github.com/bradlab/sygdn-api","last_synced_at":"2026-04-05T00:53:46.066Z","repository":{"id":293108653,"uuid":"980842694","full_name":"bradlab/sygdn-api","owner":"bradlab","description":"A digital tool that enables notaries to centralize, track, and manage their client files","archived":false,"fork":false,"pushed_at":"2025-05-20T21:26:41.000Z","size":480,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-05-20T21:47:42.428Z","etag":null,"topics":["dockerfile","linter","nestjs","nestjs-graphql","nodejs","postgresql","security","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bradlab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-09T20:11:50.000Z","updated_at":"2025-05-20T21:26:44.000Z","dependencies_parsed_at":"2025-05-13T18:50:34.641Z","dependency_job_id":null,"html_url":"https://github.com/bradlab/sygdn-api","commit_stats":null,"previous_names":["bradlab/sygdn-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bradlab/sygdn-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradlab%2Fsygdn-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradlab%2Fsygdn-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradlab%2Fsygdn-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradlab%2Fsygdn-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bradlab","download_url":"https://codeload.github.com/bradlab/sygdn-api/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bradlab%2Fsygdn-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31420782,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T00:25:07.052Z","status":"ssl_error","status_checked_at":"2026-04-05T00:25:05.923Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dockerfile","linter","nestjs","nestjs-graphql","nodejs","postgresql","security","typescript"],"created_at":"2026-04-05T00:53:45.972Z","updated_at":"2026-04-05T00:53:46.057Z","avatar_url":"https://github.com/bradlab.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SyGDN-API\n\nGestion des dossiers dans les cabinets de notaire. Chaque dossier est créé dans un domaine ou sous-domaine spécifique. Pour chaque domaine/sous-domaine, il y a des étapes (avec une durée donnée) par lesquelles les dossiers passent avant la fin de leur traitement.\n\n\u003e API backend développée avec [NestJS](https://nestjs.com/) en TypeScript, suivant le principe de **Clean Architecture**.  \n\u003e Elle utilise PostgreSQL comme base de données, TypeORM pour la couche ORM, et Docker pour l’environnement de développement et de production.\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"http://nestjs.com/\" target=\"blank\"\u003e\u003cimg src=\"https://nestjs.com/img/logo-small.svg\" width=\"200\" alt=\"Nest Logo\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456\n[circleci-url]: https://circleci.com/gh/nestjs/nest\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge\u0026logo=typescript\u0026logoColor=white\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/TypeORM-E83524?style=for-the-badge\u0026logo=typeorm\u0026logoColor=white\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/PostgreSQL-4169E1?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Docker-2496ED?style=for-the-badge\u0026logo=docker\u0026logoColor=white\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Swagger-85EA2D?style=for-the-badge\u0026logo=swagger\u0026logoColor=black\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Winston-000000?style=for-the-badge\u0026logo=npm\u0026logoColor=white\u0026label=Winston\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Jest-C21325?style=for-the-badge\u0026logo=jest\u0026logoColor=white\" /\u003e\n\u003c/p\u003e\n\n---\n\n\n## 🧱 Stack technique\n\n- **Langage** : TypeScript\n- **Framework** : [NestJS](https://nestjs.com/)\n- **Base de données** : PostgreSQL\n- **ORM** : TypeORM\n- **Conteneurisation** : Docker + Docker Compose\n- **Architecture** : Clean Architecture (domain \u003e application \u003e infrastructure \u003e interface)\n\n---\n\n## 🚀 Fonctionnalités principales\n\n- 🔧 Framework : [NestJS](https://nestjs.com/)\n- 🔍 Documentation REST via Swagger\n- 🔮 Interface GraphQL via Apollo Server\n- 🐘 Base de données PostgreSQL\n- 📝 Journalisation avec Winston\n- 🧪 Prise en charge des tests (unitaires et E2E)\n- 🧩 Architecture modulaire\n- 🔐 Validation et sécurité intégrées\n\n### Prérequis\n\n- Node.js \u003e= 22\n- PostgreSQL\n- npm, yarn ou pnpm\n\n## 🚀 Démarrage rapide\n\n### 1. Cloner le dépôt\n\n```bash\ngit clone https://github.com/bradlab/sygdn-api.git\ncd sygdn-api\n```\n\n### 2. Installer les dépendances\n\n#### Avec npm :\n```bash\nnpm install\n```\n\n#### Avec yarn :\n```bash\nyarn install\n```\n\n---\n\n### 3. Configurer les variables d’environnement\n\nCrée un fichier `.env` à la racine du projet en t’inspirant du fichier `.env.example` :\n\n```env\n# Exemple de configuration\nDATABASE_HOST=localhost\nDATABASE_PORT=5432\nDATABASE_USERNAME=db_user\nDATABASE_PASSWORD=user_password\nDATABASE_NAME=db_name\nPORT=3000\n```\nAjouter le nom du fichier .env dans la config de app.module.ts\n\n---\n\n### 4. Lancer l’application en mode développement\n\n#### Avec npm :\n```bash\nnpm run start:dev\n```\n\n#### Avec yarn :\n```bash\nyarn start:dev\n```\n\n---\n\n## 🐳 Utilisation avec Docker\n\n### 1. Lancer l’environnement complet\n\n```bash\ndocker-compose up --build\n```\n\nCela démarre :\n- L’API NestJS\n- La base de données PostgreSQL\n\n---\n\n### 2. Arrêter les conteneurs\n\n```bash\ndocker-compose down\n```\n\n---\n\n## 📁 Structure du projet (Clean Architecture)\n\n\n## 🛠️ Scripts utiles\n\n| Commande                        | npm                       | yarn                     |\n|---------------------------------|---------------------------|--------------------------|\n| Démarrer l'app                  | `npm run start`           | `yarn start`             |\n| Mode développement              | `npm run start:dev`       | `yarn start:dev`         |\n| Compiler                        | `npm run build`           | `yarn build`             |\n| Lint                            | `npm run lint`            | `yarn lint`              |\n| Tests unitaires                 | `npm run test`            | `yarn test`              |\n| Tests en mode watch             | `npm run test:watch`      | `yarn test:watch`        |\n| Typescript check                | `npx tsc`                                            |\n\n---\n\nSwagger (REST)\nAccessible via :\n[http://localhost:3000/doc](http://localhost:3000/doc)\n\nGraphQL Playground\nAccessible via :\n[http://localhost:3000/graphql](http://localhost:3000/graphql)\n\n## 🧪 Tests\n\n#### Avec npm :\n```bash\nnpm run test\n```\n\n#### Avec yarn :\n```bash\nyarn test\n```\n\n---\n\n## 🧾 Migrations TypeORM\n\n#### Créer une migration :\n\n```bash\nnpm run typeorm migration:create -- -n NomMigration\n# ou\nyarn typeorm migration:create -n NomMigration\n```\n\n#### Exécuter les migrations :\n\n```bash\nnpm run typeorm migration:run\n# ou\nyarn typeorm migration:run\n```\n\n#### Revenir en arrière :\n\n```bash\nnpm run typeorm migration:revert\n# ou\nyarn typeorm migration:revert\n```\n\n---\n\n## 📫 Contact\n\nPour toute question ou contribution :\n\n- Auteur : **bradlab**\n- Email : `matbradiouf@gmail.com`\n- GitHub : [https://github.com/bradlab](https://github.com/bradlab)\n\n---\n\n## 📝 Licence\n\nCe projet est sous licence **MIT**. Voir le fichier `LICENSE` pour plus d’informations.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbradlab%2Fsygdn-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbradlab%2Fsygdn-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbradlab%2Fsygdn-api/lists"}