You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A collaborative code space for physical computing project developers.
Chung-Ang University, Art and TechnologyFinal Project for Physical Computing
Hwang Ha-rin (황하린)
Kim Jin-seo (김진서)
Kim Gang-ryun (김강륜)
Team Roles
Kim Gang-ryun (김강륜): Front-end Developer / UI Architect
Kim Jin-seo (김진서): Back-end Developer / Software Architect
Hwang Ha-rin (황하린): Hardware Engineer / Model Architect
Git Branch Strategy
main: Final version for deployment.
staging: Pre-release version for demonstration.
dev: Integration branch for developed features.
jinseo: Backend development branch.
Gangryun: Frontend development branch.
harin: Hardware development branch.
How to connect to Git:
# 1. Clone the repository
git clone https://github.com/tragicoding/Physical-Computing-Project.git
# 2. Navigate to the project directorycd Physical-Computing-Project
# 3. Fetch all branches
git fetch
# 4. Check out your personal branch (e.g., Gangryun or harin)
git checkout Gangryun
Note: Please work on your personal branch. I will merge changes into dev. Pull from dev to get the latest integrated updates. Do not push directly to main.
Project Guidelines
Commit Messages: When pushing or committing, please write clear and descriptive commit messages detailing your changes.
Dependencies: If you add new libraries or packages for frontend, backend, or Arduino, please share the updates with the team.
Directory Structure: The directory structure is flexible. Feel free to create files and folders within your designated part of the project.
API Documentation: Refer to docs/API.md for all API endpoints.
Setup Guide: See docs/SETUP.md for development environment setup and instructions.
Terminal: On Windows, npm commands may be blocked by PowerShell's security policy. It is recommended to use CMD or Git Bash.
Installation: To install dependencies, run npm install in the relevant directory (e.g., /server).
Part-specific READMEs: Check the README.md files in /web, /server, and /firmware for specific details on variables and endpoints.
.gitignore:node_modules and .env files are ignored. .env configurations should be coordinated personally. node_modules is excluded due to its size and can be regenerated with npm install.
The project uses Docker for mysql and mqtt. The current implementation with port forwarding might have security/stability risks that need to be addressed later.
This is a hybrid, event-driven system combining a traditional web architecture (React, Node.js, MySQL) with IoT devices (ESP32/Arduino) and an MQTT broker.
# 1. Start services (MySQL, Mosquitto, Adminer)
docker compose up -d
# 2. Start the backend servercd server && npm i && npx prisma migrate dev && npm run dev
# 3. Create user, save coordinates, and register devices via API# 4. Connect ESP32 to Wi-Fi, connect to MQTT broker (PC's IP), and publish sensor events# 5. Backend subscribes, processes, and publishes commands to the speaker/bin
About
A collaborative code space for physical computing project developers.