docs: improve README
All checks were successful
/ build (map[dockerfile:./services/hasura/Dockerfile name:hasura]) (push) Successful in 1m44s
/ build (map[dockerfile:./services/api/Dockerfile name:api]) (push) Successful in 58s
/ build (map[dockerfile:./services/app/Dockerfile name:app]) (push) Successful in 1m13s
/ build (map[dockerfile:./services/files/Dockerfile name:files]) (push) Successful in 1m27s
/ build (map[dockerfile:./services/tasks/Dockerfile name:tasks]) (push) Successful in 1m40s
/ build (map[dockerfile:./services/watchers/Dockerfile name:watchers]) (push) Successful in 1m40s
/ build (map[dockerfile:./services/web/Dockerfile name:web]) (push) Successful in 1m41s
/ deploy (push) Successful in 8s
All checks were successful
/ build (map[dockerfile:./services/hasura/Dockerfile name:hasura]) (push) Successful in 1m44s
/ build (map[dockerfile:./services/api/Dockerfile name:api]) (push) Successful in 58s
/ build (map[dockerfile:./services/app/Dockerfile name:app]) (push) Successful in 1m13s
/ build (map[dockerfile:./services/files/Dockerfile name:files]) (push) Successful in 1m27s
/ build (map[dockerfile:./services/tasks/Dockerfile name:tasks]) (push) Successful in 1m40s
/ build (map[dockerfile:./services/watchers/Dockerfile name:watchers]) (push) Successful in 1m40s
/ build (map[dockerfile:./services/web/Dockerfile name:web]) (push) Successful in 1m41s
/ deploy (push) Successful in 8s
This commit is contained in:
parent
ddaff39619
commit
6a3471d2cc
1 changed files with 127 additions and 34 deletions
161
README.md
161
README.md
|
@ -1,58 +1,151 @@
|
||||||
# Alerte-Secours - Le Réflexe qui Sauve
|
# Alerte-Secours - Le Réflexe qui Sauve
|
||||||
|
|
||||||
## Dev
|
Alerte-Secours is a microservices-based emergency alert and response system designed to provide rapid assistance in emergency situations.
|
||||||
|
|
||||||
|
## Official Website
|
||||||
|
|
||||||
|
Visit our official website at [alerte-secours.fr](https://alerte-secours.fr)
|
||||||
|
|
||||||
|
## Development Quick Start
|
||||||
|
|
||||||
### Requirements
|
### Requirements
|
||||||
|
|
||||||
- docker
|
- Docker
|
||||||
- tmux + tmuxp
|
- Direnv
|
||||||
- direnv
|
- Node.js (>=20)
|
||||||
|
- Yarn (v4.6.0+)
|
||||||
|
|
||||||
### Getting started
|
### Installation
|
||||||
|
|
||||||
install
|
1. Clone the repository:
|
||||||
|
```sh
|
||||||
|
git clone https://codeberg.org/alerte-secours/alerte-secours
|
||||||
|
cd alerte-secours
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Install dependencies:
|
||||||
```sh
|
```sh
|
||||||
yarn
|
yarn
|
||||||
```
|
```
|
||||||
|
|
||||||
load tmux custom conf (optional)
|
3. Set up environment variables:
|
||||||
```sh
|
```sh
|
||||||
tmux source-file .tmux.conf
|
cp .env.default .env
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Start Services
|
||||||
|
|
||||||
### Start services
|
Start all services with:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
tmuxp load .
|
yarn dev:up
|
||||||
```
|
```
|
||||||
|
|
||||||
kill tmux session
|
View logs:
|
||||||
```sh
|
```sh
|
||||||
tmux kill-session -t helpme-project || true
|
yarn dev:logs
|
||||||
```
|
```
|
||||||
|
|
||||||
### Endpoints
|
### Public Staging Environment
|
||||||
|
|
||||||
#### services
|
For development and testing, you can use our public staging environment:
|
||||||
- api 4200
|
|
||||||
- file 4292
|
|
||||||
- hasura 4201
|
|
||||||
- tasks
|
|
||||||
- watchers
|
|
||||||
|
|
||||||
#### consoles
|
- API: https://api-staging.alerte-secours.fr
|
||||||
- [hasura 4295](http://localhost:4295)
|
- GraphQL: https://graphql-staging.alerte-secours.fr
|
||||||
- [minio 4201](http://localhost:4201)
|
- Web Interface: https://web-staging.alerte-secours.fr
|
||||||
- [api 4200](http://0.0.0.0:4200/api/v1/swagger/)
|
|
||||||
- [api graphql 4200](http://0.0.0.0:4200/api/v1/graphql)
|
|
||||||
- [files 4200](http://0.0.0.0:4292/api/v1/swagger/)
|
|
||||||
|
|
||||||
#### oa url
|
### Endpoints (Local Development)
|
||||||
- /api/v1
|
|
||||||
- /spec
|
#### Services
|
||||||
- /oas
|
- API: http://localhost:4200
|
||||||
- /swagger
|
- Files: http://localhost:4292
|
||||||
- /graphql
|
- Hasura: http://localhost:4201
|
||||||
- /status
|
- Tasks Service
|
||||||
- /
|
- Watchers Service
|
||||||
|
- Web: http://localhost:4203
|
||||||
|
|
||||||
|
#### Consoles
|
||||||
|
- [Hasura Console](http://localhost:4295)
|
||||||
|
- [Minio Console](http://localhost:4291)
|
||||||
|
- [API Swagger](http://localhost:4200/api/v1/swagger/)
|
||||||
|
- [API GraphQL](http://localhost:4200/api/v1/graphql)
|
||||||
|
- [Files API](http://localhost:4292/api/v1/swagger/)
|
||||||
|
|
||||||
|
#### 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
|
||||||
|
```
|
||||||
|
|
||||||
|
## Licensing
|
||||||
|
|
||||||
|
Alerte-Secours is licensed under the **DevTheFuture Ethical Use License (DEF License)**.
|
||||||
|
|
||||||
|
Key points:
|
||||||
|
- **Nonprofit Use**: Free for nonprofit purposes
|
||||||
|
- **Profit Use**: Requires a paid license
|
||||||
|
- **Personal Data**: Must not be monetized or exploited
|
||||||
|
- **Ownership**: All intellectual property rights remain with the licensor
|
||||||
|
- **Competitor Restriction**: Competitors must obtain explicit permission
|
||||||
|
|
||||||
|
For full license details, see [LICENSE.md](LICENSE.md).
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
We welcome contributions to Alerte-Secours. Please read our contribution guidelines before submitting pull requests.
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
For support, please open an issue on our [Codeberg issue tracker](https://codeberg.org/alerte-secours/alerte-secours/-/issues) or [GitHub issue tracker](https://github.com/alerte-secours/alerte-secours/issues).
|
||||||
|
|
Loading…
Add table
Reference in a new issue