Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/qmi03/funny_ai_iot_capstone_project
iot school project
https://github.com/qmi03/funny_ai_iot_capstone_project
asyncio fastapi microbit mongodb mqtt mqtt-client python react tailwind tailwindcss typescript websocket wsgi
Last synced: about 1 month ago
JSON representation
iot school project
- Host: GitHub
- URL: https://github.com/qmi03/funny_ai_iot_capstone_project
- Owner: qmi03
- Created: 2024-05-01T07:55:59.000Z (9 months ago)
- Default Branch: master
- Last Pushed: 2024-05-20T22:55:25.000Z (9 months ago)
- Last Synced: 2024-11-10T11:19:00.603Z (3 months ago)
- Topics: asyncio, fastapi, microbit, mongodb, mqtt, mqtt-client, python, react, tailwind, tailwindcss, typescript, websocket, wsgi
- Language: TypeScript
- Homepage:
- Size: 16 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# About
This is a smarthome school project. It has some iot and ai inference.# System Architecture
![System Architecture](./public/system_architecture.jpg)
# Requirements1. node (Can use nvm to version management, I'm using nvm --lts so it's node v20.12.1 (npm v10.5.0))
2. python
3. docker compose# Run
## Backend + Database
1. `docker compose up` or `docker-compose up` (whatever works for you)
2. `cd app`
3. Create a virtual environment if needed, then `pip install -r requirements.txt`
4. Create the .env file from .env.example. And fill in the fields.
5. Run backend: `fastapi dev app.py --host 0.0.0.0 --port 8000`
6. Initialize the rooms in the database: `python database/scripts/init_light.py`
7. Modify database/scripts/init_camera_links.py for the camera links you want for your app. Then run python database/scripts/init_camera_links.py
## Frontend
1. `cd smarthome`
2. Install dependencies, use: `yarn` or `npm install`.
3. Create the .env file from .env.example. And fill in the fields.
4. Run the frontend: `yarn dev` (add `--host` to expose ip).