You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

86 lines
1.9 KiB
Markdown

# ScalesApp - Multi-Component Application
A distributed application consisting of three main components:
## Architecture
### 1. **Frontend (React)**
- Location: `/frontend`
- Description: React web application that displays real-time data from the serial port
- Communicates with: Django backend via REST API
- Port: 3000 (default)
### 2. **Backend (Django)**
- Location: `/backend`
- Description: Django REST API server for storing and retrieving serial data
- Database: SQLite (configurable)
- Port: 8000 (default)
### 3. **Serial Bridge (Python)**
- Location: `/serial_bridge`
- Description: Python application that reads data from COM ports
- Features: System tray integration, runs as EXE (via PyInstaller)
- Communicates with: Django backend via REST API
- Data Flow: COM Port → Serial Bridge → Django Backend → React Frontend
## Installation & Setup
### Prerequisites
- Node.js 16+ (for React)
- Python 3.8+ (for Django and Serial Bridge)
- pip or conda for Python packages
### Quick Start
1. **Backend Setup**
```bash
cd backend
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver
```
2. **Frontend Setup**
```bash
cd frontend
npm install
npm start
```
3. **Serial Bridge Setup**
```bash
cd serial_bridge
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
python app.py
```
## Data Flow
```
COM Port
Serial Bridge (Python)
Django Backend REST API
React Frontend
```
## Configuration
Each component has its own configuration file:
- Frontend: `.env`
- Backend: `settings.py` and `.env`
- Serial Bridge: `config.py` and `.env`
## Development Tips
- Keep all three services running during development
- Use `CORS` headers properly in Django for frontend requests
- Serial Bridge should continuously read COM data and POST to backend
- Frontend should poll/subscribe to backend for updates