as-services/DEVELOPER.md
devthejo cfdea8db4b
All checks were successful
/ build (map[dockerfile:./services/hasura/Dockerfile name:hasura]) (push) Successful in 2m6s
/ deploy (push) Successful in 8s
/ build (map[dockerfile:./services/api/Dockerfile name:api]) (push) Successful in 43s
/ build (map[dockerfile:./services/app/Dockerfile name:app]) (push) Successful in 1m27s
/ build (map[dockerfile:./services/tasks/Dockerfile name:tasks]) (push) Successful in 1m44s
/ build (map[dockerfile:./services/watchers/Dockerfile name:watchers]) (push) Successful in 1m54s
/ build (map[dockerfile:./services/web/Dockerfile name:web]) (push) Successful in 1m59s
/ build (map[dockerfile:./services/files/Dockerfile name:files]) (push) Successful in 1m14s
chore: improve doc + add funding
2025-05-23 22:30:15 +02:00

3.3 KiB

Alerte-Secours Services - Developer Documentation

This document contains technical information for developers working on the Alerte-Secours microservices backend.

Development Quick Start

Requirements

  • Docker
  • Direnv
  • Node.js (>=20)
  • Yarn (v4.6.0+)

Installation

  1. Clone the repository:
git clone https://codeberg.org/alerte-secours/alerte-secours
cd alerte-secours
  1. Install dependencies:
yarn
  1. Set up environment variables:
cp .env.default .env

Start Services

Start all services with:

yarn dev:up

View logs:

yarn dev:logs

Public Staging Environment

For development and testing, you can use our public staging environment:

Endpoints (Local Development)

Services

Consoles

API URLs

  • /api/v1
    • /spec - API Specification
    • /oas - OpenAPI Service
    • /swagger - Swagger Documentation
    • /graphql - GraphQL Endpoint
  • /status - Service Status
  • / - Root Endpoint

Technical Stack

Backend

  • Node.js (>=20) - Core runtime
  • PostgreSQL - Primary database
  • Redis - Caching and queue deduplication
  • RabbitMQ - Message queue
  • Hasura - GraphQL engine
  • OpenAPI - API specification and documentation
  • Modjo Framework - Microservices architecture

Frontend

  • React - Web interface
  • React Native - Mobile application
  • Apollo Client - GraphQL integration
  • MapView - Geolocation visualization

Infrastructure

  • Docker - Containerization
  • Microservices Architecture - Separate services for API, files, tasks, etc.
  • CQRS Pattern - Command Query Responsibility Segregation
  • Event-Driven Architecture - Using message queues

Key Features

  • Real-time alerts and notifications
  • Geolocation tracking and mapping
  • Emergency services integration
  • User authentication and authorization
  • File storage and management
  • Background task processing

Project Structure

services/
├── api/          # Main API service
├── app/          # Frontend application
├── files/        # File handling service
├── hasura/       # GraphQL engine
├── tasks/        # Background task processing
├── watchers/     # Event monitoring
└── web/          # Web interface

libs/
├── common/       # Shared utilities
├── postgres-types/ # Database type definitions
├── redis-queue-dedup/ # Redis queue deduplication
└── utils/        # General utilities

Contributing

We welcome contributions to Alerte-Secours. Please read our contribution guidelines before submitting pull requests.

Support

For technical support, please open an issue on our Codeberg issue tracker or GitHub issue tracker.