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
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
|