Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 51 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,35 @@ digital services reliable for students and researchers. The repository contains
code for the IoT device layer, the backend APIs, and supporting documentation so
faculties can adapt the platform to their own campuses.

### High-Level Architecture
---

## 🚀 Quick Start

### Prerequisites

- Python 3.11+
- `pip` or `uv` for dependency management
- PostgreSQL (for production)
- Docker & Docker Compose (recommended)

### Running with Docker

```bash
# Clone the repository
git clone https://github.com/bos-com/LifeLine-ICT.git
cd LifeLine-ICT

# Start the backend service
docker-compose up -d

# Access the API
# API: http://localhost:8000
# Swagger Docs: http://localhost:8000/docs
```

---

## 🏗️ Architecture

The solution comprises five collaborating layers:

Expand All @@ -23,9 +51,6 @@ The solution comprises five collaborating layers:
- **Deployment** – Infrastructure-as-code scripts will package the stack for on
campus or cloud hosting.

Consult `docs/backend_crud_plan.md` for the architectural rationale that guided
issue `#5` (CRUD API implementation).

### Module Overview

- `iot/` – Firmware sketches and logging scripts for field sensors.
Expand All @@ -34,7 +59,9 @@ issue `#5` (CRUD API implementation).
- Additional directories (frontend, gis, deployment) will be filled as the
broader initiative matures.

## Backend Service (Issue #5 Deliverable)
---

## 🛠️ Backend Service Setup

### Prerequisites

Expand Down Expand Up @@ -111,19 +138,34 @@ The backend models capture the following relationships:
Consult the service-layer docstrings for detailed business rules and
institutional context.

## Contributing
---

1. Create an issue or pick an existing one (see `issues.md`).
## 🧰 Technologies

- **Backend**: FastAPI (Python)
- **Database**: PostgreSQL with SQLAlchemy ORM
- **Migrations**: Alembic
- **Testing**: pytest
- **IoT**: ESP32, Flask
- **Documentation**: OpenAPI/Swagger

---

## 🤝 Contributing

1. Create an issue or pick an existing one (see GitHub Issues).
2. Branch from `main`: `git checkout -b feature/your-feature`.
3. Follow the layered structure (`api`, `services`, `repositories`, `models`) to
keep contributions organised.
4. Write tests and run `pytest backend/tests` before opening a pull request.
5. Document behaviour changes in code docstrings or the project docs.

## License
---

## 📄 License

MIT, Apache

## Maintainers
## 👥 Maintainers

Muwanga Erasto Kosea, Ouma Ronald
Loading