[5.1 Prototype] Private Messages - FEUP-MEIC-DS-2025-26/madeinportugal.store GitHub Wiki
[!NOTE] Build instructions and community guidelines are available in the repository.
Vision / Objective
Private Messages aims to enable private, encrypted communication between users. With this approach, the two parties involved can access their messages, allowing them to discuss product details, ask questions, and negotiate securely — free from external access or interference.
Unfeasibility of End-to-End Encryption and its consequences
It leverages encryption-in-transit (via TLS) and encryption at rest (via ChaCha20Poly1305) to best protect user data, given that end-to-end encryption isn't possible in browsers (no local storage).
API
Check the openapi.yaml for all the details.
Most endpoints require a cookie (auth_user) for authentication and identity, which can be obtained with the /api/chat/login endpoint.
Architecture and Technologies
| Tool/Tecnology | Role/Category | Use in the prototype |
|---|---|---|
| Rust with Actix and sqlx crates | Backend and middleware server | Entry point, API, logic and communication |
NextJS with export enabled |
Frontend | Interface and call API |
| SQLite | Database | Saving messages and cache users |
| Jumpseller API | API/External service | Get the users in the platform |
| Docker | Reproducible deployment | Specify production image |
| GitHub Actions | CI/CD | Build and push Docker image |
| Terraform | IaC | Deploy Google Cloud services |
| Google Cloud | Infrastructure | Save Docker Image, deploy Docker Image, and communicate with other microservices |
- Inspired Epic: #131
- Repository: https://github.com/FEUP-MEIC-DS-2025-26/private_messages
- Group: 51
- Guilherme Duarte Silva Matos [email protected]
- João Vítor da Costa Ferreira [email protected] (Scrum Master)
- Lucas Gonçalves Bessa [email protected]
- Luís Miguel Melo Arruda [email protected] (Product Owner)
- Pedro Paulo Gorobey [email protected]
- Tomás de Campos Sucena de Sequeiros Lopes [email protected]