Skip to content

Docs/add project documentation#28

Open
esantoul wants to merge 17 commits intomainfrom
docs/add-project-documentation
Open

Docs/add project documentation#28
esantoul wants to merge 17 commits intomainfrom
docs/add-project-documentation

Conversation

@esantoul
Copy link

Pull Request: Add Project Documentation and Development Setup

Description

Adds documentation and development setup to simplify onboarding and development. Includes:

  • Documentation (4 guides)
  • Dev Container setup for VS Code/Cursor
  • Docker Compose configuration for local services
  • Updated README with quick start

Type of Change

  • Documentation
  • New feature (Dev Container + Docker Compose)
  • Bug fix
  • Breaking change

Changes Summary

Documentation Added

  1. ARCHITECTURE.md (537 lines)

    • Architecture overview
    • Monorepo structure
    • Package descriptions (@arrhes/api, @arrhes/platform, @arrhes/metadata, @arrhes/tools, @arrhes/website)
    • Tech stack
    • Data flows (auth, CRUD, file upload/download)
    • Authentication strategy
    • Database schema
  2. CONFIGURATION.md (527 lines)

    • Environment variables for API and Tools
    • PostgreSQL setup (Docker Compose and native)
    • S3/MinIO configuration
    • SMTP/Email configuration
    • Security practices
    • Example configurations
  3. DEVELOPMENT.md (954 lines)

    • Three development options (Dev Container, Docker Compose, Native)
    • Installation steps
    • Configuration
    • Database initialization
    • Development workflow
    • Scripts reference
    • Debugging
    • Troubleshooting
  4. CONTRIBUTING.md (551 lines)

    • Code of conduct
    • Contribution guidelines
    • Code standards (TypeScript, React, naming)
    • Commit conventions
    • PR process
    • Testing guidelines

Development Infrastructure

  1. Dev Container (.devcontainer/)

    • Dockerfile - Node.js 24.5+ with pnpm
    • devcontainer.json - VS Code/Cursor configuration
    • post-create.sh - Auto-setup script (installs deps, initializes DB, creates .env files)
    • README.md - Dev Container usage guide
  2. Docker Compose (docker-compose.yml)

    • PostgreSQL service (port 5432)
    • MinIO service (ports 9000, 9001)
    • MailHog service (ports 1025, 8025)
    • Pre-configured with default credentials
  3. Additional Files

    • .dockerignore - Docker build exclusions
    • Updated .gitignore - Dev container files
    • Updated README.md - Quick start guide with 3 options

Files Changed

13 files changed, 3279 insertions(+), 11 deletions(-)

Added:
- .devcontainer/Dockerfile
- .devcontainer/README.md
- .devcontainer/devcontainer.json
- .devcontainer/post-create.sh
- .dockerignore
- docs/ARCHITECTURE.md
- docs/CONFIGURATION.md
- docs/CONTRIBUTING.md
- docs/DEVELOPMENT.md

Modified:
- .gitignore
- README.md
- docker-compose.yml
- packages/platform/vite.config.ts

Pre-Merge Checklist

Build Methods Verification

Verify that all 3 build/setup methods work correctly:

  1. Dev Container Method

    # In VS Code/Cursor:
    # 1. Open project
    # 2. Click "Reopen in Container"
    # 3. Wait for setup to complete
    # 4. Run: pnpm run build
    # 5. Verify all packages build successfully
  2. Docker Compose Method

    # 1. pnpm install
    # 2. docker-compose up -d
    # 3. Configure .env files (see CONFIGURATION.md)
    # 4. pnpm --filter tools run push
    # 5. pnpm run build
    # 6. Verify all packages build successfully
  3. Native Installation Method

    # 1. pnpm install
    # 2. Setup PostgreSQL locally
    # 3. Configure .env files (see CONFIGURATION.md)
    # 4. pnpm --filter tools run push
    # 5. pnpm run build
    # 6. Verify all packages build successfully

Documentation Review

Review all documentation files for accuracy:

  • ARCHITECTURE.md

    • Architecture diagrams are accurate
    • Package descriptions match current codebase
    • Tech stack versions are correct
    • Data flow descriptions are accurate
    • Database schema matches actual models
  • CONFIGURATION.md

    • All environment variables are documented
    • Docker Compose setup instructions work
    • Native setup instructions are clear
    • Example configurations are valid
    • Security recommendations are appropriate
  • DEVELOPMENT.md

    • All 3 setup methods are clearly explained
    • Installation steps work as described
    • Scripts reference is complete and accurate
    • Troubleshooting section covers common issues
    • URLs and ports are correct
  • CONTRIBUTING.md

    • Code standards match project conventions
    • Commit message format is clear
    • PR process is well-defined
    • Testing guidelines are appropriate
  • README.md

    • Quick start instructions work
    • Links to documentation are correct
    • Feature list is accurate

Testing Instructions

Quick Verification

  1. Build Test

    pnpm run build

    Should build all packages without errors.

  2. Dev Container Test

    • Open in VS Code/Cursor
    • Reopen in Container
    • Verify auto-setup completes
    • Run pnpm run dev and verify app starts
  3. Docker Compose Test

    docker-compose up -d
    docker-compose ps  # Verify all services are running
  4. Documentation Links

    • Verify all internal links work
    • Check that code examples are valid
    • Ensure file paths are correct

Additional Notes

  • All documentation is in French (as per project language)
  • Dev Container setup includes automatic database seeding
  • Docker Compose uses default credentials (documented for dev only)
  • Documentation follows the existing project structure

Screenshots/Demo

N/A - Documentation and infrastructure changes


Ready for Review: Please verify the 3 build methods and review all documentation files before merging.

esantoul and others added 8 commits November 20, 2025 22:01
Add detailed documentation to help contributors and developers:

- Add ARCHITECTURE.md with system design and component overview
- Add CONFIGURATION.md with environment and deployment setup
- Add CONTRIBUTING.md with contribution guidelines and standards
- Add DEVELOPMENT.md with setup and development workflow
- Update README.md with links to new documentation

This documentation provides a complete guide for new contributors
to understand the project structure, set up their development
environment, and follow best practices.
Add Dev Container configuration for VS Code/Cursor with automatic
environment setup. Add Docker Compose configuration for PostgreSQL,
MinIO, and MailHog services. Update documentation to include three
development options: Dev Container, Docker Compose, and native setup.

- Add .devcontainer configuration (Dockerfile, devcontainer.json, post-create.sh)
- Add docker-compose.yml with PostgreSQL, MinIO, and MailHog services
- Add .dockerignore for Docker builds
- Update README.md with Dev Container quick start guide
- Update docs/DEVELOPMENT.md with environment choice section
- Update docs/CONFIGURATION.md with Docker Compose options
- Update docs/CONTRIBUTING.md with Dev Container instructions
- Add .pnpm-store to .gitignore
- Add # alias to platform vite.config.ts
Removed references to MinIO and MailHog services in the README.
Updated the forwarded ports and their attributes in the devcontainer configuration.
@656d696c65 656d696c65 self-requested a review November 28, 2025 19:28
@656d696c65 656d696c65 marked this pull request as ready for review November 28, 2025 19:49
&mile and others added 9 commits November 28, 2025 20:52
…v docker scripts

- move packages/dashboard to packages/platform and update assets, components, and routes
- add development .dev files: .dev/packages/api/Dockerfile, entrypoint.sh, .dev/compose.yml, and updated start.sh
- remove .dev/scripts/.api.env and .dev/scripts/.tools.env
- add justfile for developer tasks
- update README.md, docs/CONTRIBUTING.md, docs/DEVELOPMENT.md
- update packages/api package.json and tsconfig.json
- migrate from monolithic devcontainer to multi-service compose setup (api, dashboard, website)
- implement bind-mount strategy for source code with volume isolation for node_modules/build outputs
- add service-specific Dockerfiles and entrypoint scripts for api, dashboard, and website packages
- create per-service .env files in .dev/packages/{service}/ for environment configuration
- update compose.yml with detailed volume mappings and service dependencies
- remove centralized bootstrap script (initialize.sh, start.sh) in favor of entrypoint-based initialization
- add comprehensive .dockerignore with categorized exclusions and documentation
- update README.md with new architecture overview, usage patterns, and troubleshooting guide
- add .gitignore to track only essential dev configuration files
- update root documentation (README.md, ARCHITECTURE.md, CONTRIBUTING.md, DEVELOPMENT.md) to reflect
new Docker workflow
- update justfile with simplified Docker commands for new architecture
- update 254 API route files to use consistent import patterns and error handling
- update 197 dashboard component files for improved data handling and UI consistency
- migrate database client configuration to use Docker service hostnames
- rename .dev directory to .development for clarity
- update all references in compose.yml, README.md, justfile, and documentation
- fix Docker permissions by running chown in entrypoints before switching to node user
- add PostgreSQL client and expect to API Dockerfile for migration handling
- update database migration to use --force flag and expect for interactive prompts
- improve RustFS healthcheck to properly detect 403 Forbidden response
- update database URLs from localhost to postgres service name in .env files
- consolidate justfile commands under 'dev' namespace (dev-up, dev-down)
- fix website port from 5174 to 5173 in vite.config.ts
- add database table existence check before running migrations
- enhance entrypoint scripts to handle workspace permissions for bind mounts
- update .dockerignore comment to reference .development folder
- update compose.yml volume mounts from .dev to .development across all services (api, dashboard, website)
- update compose.yml comment to reference .development versions
…aths note

Replace all references to arrhes-application with arrhes-platform to match the current repository origin. Add a note in README, DEVELOPMENT and CONTRIBUTING docs warning Windows users to enable core.longpaths before cloning.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants