P2P mesh messenger with glass terminal UI
app/— Python backend (models, repositories)css/— stylesjs/— frontend logicdb/— SQL schemastests/— pytest suiteindex.html— main UI
# Python environment
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Database setup (PostgreSQL)
psql -U postgres -f db/genesis.sql
# Run
./run.sh| Method | Endpoint | Description |
|---|---|---|
| POST | /users/ |
Create user |
| GET | /users/me |
Get current user |
| PATCH | /users/me |
Update user |
| GET | /users/search |
Search users |
| GET | /users/{id} |
Get user by ID |
| GET | /users/me/contacts |
List contacts |
| POST | /users/me/contacts |
Add contact |
| DELETE | /users/me/contacts/{id} |
Remove contact |
| POST | /chains/ |
Create chain |
| GET | /chains/ |
List chains |
| GET | /chains/{id} |
Get chain |
| GET | /messages/chains/{id} |
Get chain messages |
| POST | /messages/chains/{id} |
Create message |
| POST | /messages/chains/{id}/with-attachments |
Create message with files |
| GET | /messages/chains/{id}/messages/{mid} |
Get message |
| DELETE | /messages/{id} |
Delete message |
| GET | /validation/chains/{id} |
Validate chain |
| GET | /validation/chains/{id}/invalid |
Get invalid messages |
| GET | /validation/chains/{id}/valid |
Quick validity check |
| GET | /attachments/{id} |
Download attachment |
UPD: changed polling (such a shame) to webSocket support (yay, like a normal messenger)
