{"id":31696593,"url":"https://github.com/dinatih/sci-facile","last_synced_at":"2026-04-09T18:41:54.232Z","repository":{"id":306438565,"uuid":"1026001145","full_name":"dinatih/sci-facile","owner":"dinatih","description":"Application Rails 8 – 🧑‍💻  projet vitrine pour ma recherche d’un poste de dev full-stack Ruby on Rails","archived":false,"fork":false,"pushed_at":"2025-08-26T18:19:12.000Z","size":5768,"stargazers_count":0,"open_issues_count":8,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-27T01:54:50.395Z","etag":null,"topics":["bootstrap5","capybara","chartjs","containerization","devcontainer","docker","docker-compose","esbuild","factory-bot","fr-yml","rails","rspec","sci","selenium","sqlite3","system-specs"],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/dinatih.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-07-25T06:40:09.000Z","updated_at":"2025-08-26T18:19:16.000Z","dependencies_parsed_at":"2025-07-25T20:10:59.261Z","dependency_job_id":"28a12b40-3206-4de2-9134-0bace9481796","html_url":"https://github.com/dinatih/sci-facile","commit_stats":null,"previous_names":["dinatih/sci-facile"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dinatih/sci-facile","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dinatih%2Fsci-facile","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dinatih%2Fsci-facile/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dinatih%2Fsci-facile/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dinatih%2Fsci-facile/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dinatih","download_url":"https://codeload.github.com/dinatih/sci-facile/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dinatih%2Fsci-facile/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278981518,"owners_count":26079640,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["bootstrap5","capybara","chartjs","containerization","devcontainer","docker","docker-compose","esbuild","factory-bot","fr-yml","rails","rspec","sci","selenium","sqlite3","system-specs"],"created_at":"2025-10-08T17:09:26.253Z","updated_at":"2025-10-08T17:09:27.372Z","avatar_url":"https://github.com/dinatih.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"[Voir la vidéo du test](public/demo-sci-facile.webm)\n___\n![sci-facile hero](public/sci-facile-hero.png)\n\nChatGPT chat : https://chatgpt.com/share/688c5277-82c4-8007-91d8-5d9a562e4a49\n\n\u003e Je veux créer un app rails de gestion de SCI, décrit un premier document \n\nVoici un exemple de **premier document de cadrage** pour ton application Rails de gestion de SCI (Société Civile Immobilière). Ce genre de document t'aidera à clarifier le périmètre, la cible, les fonctionnalités et la vision du projet avant d'attaquer le développement.\n\n---\n\n# 📄 Document de Cadrage\n\n## Projet : Application de Gestion de SCI\n\n---\n\n## 🎯 Objectif du projet\n\nDévelopper une application web permettant de gérer facilement une SCI :\n\n* Suivi de la comptabilité simple (recettes/dépenses)\n* Suivi des associés (capital, répartition, mouvements)\n* Génération des documents comptables (tableau de répartition, relevé des comptes courants)\n* Gestion des assemblées générales et PV\n* Gestion locative basique : loyers, charges, locataires\n\n---\n\n## 👥 Utilisateurs cibles\n\n* Gérants de SCI à usage familial ou patrimonial\n* Comptables / experts-comptables mandatés\n* Associés souhaitant suivre la vie de la société\n\n---\n\n## 🧩 Fonctionnalités principales\n\n### 1️⃣ Gestion des associés\n\n* Fiche associée (nom, coordonnées, parts détenues, capital apporté)\n* Historique des mouvements de parts (cession, augmentation, réduction)\n* Calcul automatique des répartitions (dividendes, quote-part des charges)\n\n### 2️⃣ Gestion financière\n\n* Enregistrement des recettes (loyers, remboursements, etc.)\n* Enregistrement des dépenses (charges, travaux, impôts, etc.)\n* Comptes courants d’associés (avances, retraits)\n* Visualisation simplifiée des bilans par exercice\n\n### 3️⃣ Gestion locative simplifiée\n\n* Fiches biens immobiliers\n* Fiches locataires\n* Loyer perçu / charges refacturées\n* Échéancier des paiements\n\n### 4️⃣ Assemblées Générales\n\n* Création de convocations / ordres du jour\n* Modèle de PV automatisé\n* Suivi des décisions\n\n---\n\n## 📊 Tableau de bord\n\n* Vue d'ensemble de la SCI (trésorerie, dettes, recettes à venir)\n* Récapitulatif des comptes associés\n* Alertes importantes (loyers en retard, échéances fiscales)\n\n---\n\n## 📂 Documents générés\n\n* États financiers simplifiés\n* Tableaux de répartition des résultats\n* Modèles de convocations / PV d'AG\n* État des comptes courants des associés\n\n---\n\n## 🛠️ Stack technique proposée\n\n* Ruby on Rails (dernière version stable)\n* PostgreSQL\n* Turbo / Stimulus pour l’interactivité\n* Bootstrap ou TailwindCSS pour l’interface\n* PDFKit ou Prawn pour la génération de PDF\n\n---\n\n## 🔓 Accès / Sécurité\n\n* Gestion des comptes utilisateurs (gérants / associés / experts-comptables)\n* Authentification (Devise)\n* Rôles et permissions (Pundit ou autre)\n\n---\n\n## 🗓️ Premières étapes du projet\n\n1. Création du schéma de données (SCI, associés, biens, opérations, AG, etc.)\n2. Mise en place d'un MVP :\n\n   * CRUD associés / opérations / biens\n   * Suivi basique des flux financiers\n   * Génération d'un premier tableau de répartition simplifié\n3. Ajout progressif des fonctionnalités secondaires (AG, locataires, documents PDF, etc.)\n\n---\n\nSi tu veux, je peux t’aider à détailler :\n\n* Le **schéma de la base de données**\n* Un **User Story Mapping**\n* Une **roadmap MVP**\n* Ou carrément te générer le premier scaffold Rails (avec les modèles, contrôleurs et routes).\n\nDis-moi comment tu veux poursuivre.\n\n\n\u003e je veux tout, réponds moi en français , mais défini tout en anglais\n\nTrès bien. Voici une réponse structurée en **français** mais avec toutes les **définitions en anglais** comme tu le souhaites.\n\n---\n\n## 🔶 **Schéma de base de données (Database Schema)**\n\n```plaintext\nTable: companies\n- id\n- name\n- created_at\n- updated_at\n\nTable: associates\n- id\n- company_id (references companies)\n- first_name\n- last_name\n- email\n- shares_count (number of shares held)\n- initial_contribution (in euros)\n- current_account_balance (in euros)\n- created_at\n- updated_at\n\nTable: properties\n- id\n- company_id (references companies)\n- address\n- description\n- acquisition_date\n- acquisition_price\n- created_at\n- updated_at\n\nTable: tenants\n- id\n- property_id (references properties)\n- first_name\n- last_name\n- email\n- rent_amount (monthly)\n- charges_amount (monthly)\n- lease_start_date\n- lease_end_date\n- created_at\n- updated_at\n\nTable: financial_operations\n- id\n- company_id (references companies)\n- property_id (nullable)\n- tenant_id (nullable)\n- associate_id (nullable)\n- category (enum: income, expense, current_account)\n- label\n- amount (positive or negative depending on category)\n- date\n- created_at\n- updated_at\n\nTable: general_meetings\n- id\n- company_id (references companies)\n- date\n- title\n- minutes_text (AG minutes)\n- created_at\n- updated_at\n```\n\n---\n\n## 🔶 **User Story Mapping (USM)**\n\n### **Backbone (Principal Activities)**\n\n* Manage Associates\n* Manage Properties\n* Manage Financial Operations\n* Manage Tenants\n* Manage General Meetings\n* View Financial Summary\n\n---\n\n### **User Stories (Detailed Tasks)**\n\n#### 🧑‍🤝‍🧑 **Manage Associates**\n\n* As a manager, I can create, update, and delete associates.\n* As a manager, I can track shares distribution.\n* As a manager, I can track associate current accounts.\n\n#### 🏠 **Manage Properties**\n\n* As a manager, I can create, update, and delete properties.\n* As a manager, I can link properties to tenants.\n* As a manager, I can track acquisition costs.\n\n#### 💶 **Manage Financial Operations**\n\n* As a manager, I can log incomes (rents, reimbursements, etc.).\n* As a manager, I can log expenses (charges, taxes, repairs, etc.).\n* As a manager, I can register movements on current accounts.\n* As a manager, I can generate reports per year.\n\n#### 👨‍💼 **Manage Tenants**\n\n* As a manager, I can add tenants.\n* As a manager, I can assign rents and charges to tenants.\n* As a manager, I can follow payment status.\n\n#### 📄 **Manage General Meetings**\n\n* As a manager, I can create meeting agendas.\n* As a manager, I can generate minutes (PDF).\n* As a manager, I can follow decisions history.\n\n#### 📊 **View Financial Summary**\n\n* As an associate, I can view my current account balance.\n* As a manager, I can view a global financial summary (cash, debts, etc.).\n* As a manager, I can export documents (PDF/CSV).\n\n---\n\n## 🔶 **Roadmap MVP (Minimum Viable Product)**\n\n### **Phase 1 — Basic Core (CRUD)**\n\n* CRUD for associates\n* CRUD for properties\n* CRUD for financial operations\n* CRUD for tenants\n* Financial dashboard (basic)\n\n### **Phase 2 — Features for Real Usage**\n\n* Associate shares calculation\n* Current account management (automatic sums)\n* Income/expense breakdown per property\n* Tenant rent tracking\n* PDF generation for AG minutes\n\n### **Phase 3 — Polish and Prepare Production**\n\n* Authentication (Devise)\n* Authorization (Pundit)\n* Document export (Prawn / PDFKit)\n* Accounting export (CSV)\n* Styling (Tailwind / Bootstrap)\n\n---\n\n## 🔶 **Premiers Scaffold Rails**\n\nVoici la liste des scaffolds que je te recommande de créer avec `rails generate scaffold` :\n\n```bash\nrails g scaffold Company name:string\nrails g scaffold Associate company:references first_name:string last_name:string email:string shares_count:integer initial_contribution:decimal current_account_balance:decimal\nrails g scaffold Property company:references address:string description:text acquisition_date:date acquisition_price:decimal\nrails g scaffold Tenant property:references first_name:string last_name:string email:string rent_amount:decimal charges_amount:decimal lease_start_date:date lease_end_date:date\nrails g scaffold FinancialOperation company:references property:references tenant:references associate:references category:string label:string amount:decimal date:date\nrails g scaffold GeneralMeeting company:references date:date title:string minutes_text:text\n```\n\n---\n\nSi tu veux, je peux ensuite te fournir le :\n✅ Fichier `routes.rb`\n✅ Exemple de modèle relationnel en Rails (`has_many`, `belongs_to`)\n✅ Wireframes (schémas d'interface) pour le back-office\n\nDis-moi ce que tu veux en priorité.\n\n\u003e oui et dit moi ce que sont des minutes dans As a manager, I can generate minutes (PDF).\n\nTrès bonne question.\nDans le contexte d'une **SCI** ou d'une **entreprise**, le mot anglais **\"minutes\"** signifie simplement :\n\n➡️ **Procès-verbal (PV) d'Assemblée Générale (AG)**\n\n---\n\n### 📄 **Définition en anglais :**\n\n\u003e **Meeting Minutes** are the official written record of everything that was said, decided, or voted during a meeting. They summarize decisions, actions, and responsibilities.\n\n---\n\n### 📄 **En français (SCI) :**\n\n\u003e Le **procès-verbal d'Assemblée Générale** est un document qui consigne de façon officielle :\n\u003e\n\u003e * les décisions prises,\n\u003e * les votes réalisés,\n\u003e * les participants présents ou représentés,\n\u003e * et éventuellement les débats importants.\n\n---\n\n### ✅ Exemples concrets de ce qu’on retrouvera dans ces **minutes / procès-verbaux** :\n\n* Approbation des comptes annuels\n* Répartition des bénéfices (dividendes ou report à nouveau)\n* Décision de travaux importants\n* Changement de gérant\n* Augmentation de capital\n\n---\n\n### 📂 Pourquoi générer un PDF dans ton app ?\n\nParce que chaque année (ou chaque décision importante), une SCI doit conserver ces **procès-verbaux signés** et souvent les transmettre au comptable ou au notaire.\nTon application Rails pourra générer automatiquement un **PDF clair et formel** à partir des informations saisies.\n\n---\n\nSi tu veux, je peux te faire un **exemple de modèle de procès-verbal** en anglais et en français. Tu veux ?\n\n\n---\n---\n\n# Liens utiles\n\n- https://fr.wikipedia.org/wiki/Soci%C3%A9t%C3%A9_civile_immobili%C3%A8re\n- https://www.economie.gouv.fr/particuliers/gerer-mon-argent/gerer-mon-budget-et-mon-epargne/societe-civile-immobiliere-comment-ca\n\n---\n---\n\nExcellente question ! Voici les différences entre ces 4 catégories d'opérations financières dans une SCI :\n\n## **RECETTE** 💰\n- **Définition** : Argent qui ENTRE dans la SCI en échange d'un service/bien\n- **Exemples** : Loyers, revenus locatifs\n- **Impact** : Augmente les fonds de la SCI\n- **Dans vos données** : Les loyers de Philothée (663€, 1397€, 1478€)\n\n## **DÉPENSE** 💸\n- **Définition** : Argent qui SORT de la SCI pour faire fonctionner l'activité\n- **Exemples** : Charges, assurance, taxes, travaux, entretien\n- **Impact** : Diminue les fonds de la SCI\n- **Dans vos données** : Charges (514€), Assurance (446€), Taxe (435€), Travaux (2982€)\n\n## **APPORT** 📥\n- **Définition** : Argent apporté par les ASSOCIÉS à la SCI (pas un revenu d'activité)\n- **Types** : \n  - Apport initial (capital)\n  - Apport en compte courant (prêt des associés à la SCI)\n- **Impact** : Augmente les fonds de la SCI + crée une dette envers l'associé\n- **Dans vos données** : Herluin a apporté 7125€ en compte courant\n\n## **REMBOURSEMENT** 📤\n- **Définition** : La SCI rembourse de l'argent aux associés (leurs comptes courants)\n- **Nature** : Pas une dépense d'activité, mais un remboursement de dette\n- **Impact** : Diminue les fonds de la SCI + diminue la dette envers l'associé\n- **Dans vos données** : Remboursement à Aurélie (3667€) et opération remboursement (1936€)\n\n## **Résumé pratique :**\n- **Recettes** = La SCI gagne de l'argent par son activité\n- **Dépenses** = La SCI dépense pour son activité  \n- **Apports** = Les associés prêtent à la SCI\n- **Remboursements** = La SCI rembourse ses associés\n\n**Impact sur le bilan :** Recettes et apports augmentent la trésorerie, dépenses et remboursements la diminuent, mais seules les recettes et dépenses affectent le résultat de la SCI !\n\n\n# README\n\nThis README would normally document whatever steps are necessary to get the\napplication up and running.\n\nThings you may want to cover:\n\n* Ruby version\n\n* System dependencies\n\n* Configuration\n\n* Database creation\n\n* Database initialization\n\n* How to run the test suite\n\n* Services (job queues, cache servers, search engines, etc.)\n\n* Deployment instructions\n\n* ...\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdinatih%2Fsci-facile","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdinatih%2Fsci-facile","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdinatih%2Fsci-facile/lists"}