Soul Mate, Sole Match
발의 특성과 스타일을 매칭하여 편안하고 이상적인 신발을 추천해주는 웹앱
The application uses a .env
file for managing environment-specific configurations. Below are the variables you need to define:
# Backend Path and URLs
BACKEND_PATH=<absolute_path_to_backend_directory>
LOCAL_IP_ADDRESS=<your_local_ip_address>
BACKEND_LOCAL_URL=http://<your_local_ip_address>:5000
# Expo Public URLs
EXPO_PUBLIC_BACKEND_LOCAL_URL=http://<your_local_ip_address>:5000
EXPO_PUBLIC_BACKEND_URL=https://<your_pythonanywhere_id>.pythonanywhere.com
# Production Backend URL
BACKEND_URL=https://<your_pythonanywhere_id>.pythonanywhere.com
# Flask Environment
FLASK_ENV=development
BACKEND_PATH=/Users/choesuna/sonah-git/SoleMatch/backend/
LOCAL_IP_ADDRESS=0.0.0.0
BACKEND_LOCAL_URL=http://0.0.0.0:5000
EXPO_PUBLIC_BACKEND_LOCAL_URL=http://0.0.0.0:5000
EXPO_PUBLIC_BACKEND_URL=https://meowmeow1234.pythonanywhere.com
BACKEND_URL=https://meowmeow1234.pythonanywhere.com
FLASK_ENV=development
Note: Replace
<absolute_path_to_backend_directory>
,<your_local_ip_address>
and/<your_pythonanywhere_id>
with your actual file path, IP address and pythonanywhere ID.
-
Clone the repository (only first):
git clone <repository-url>
-
Install dependencies (only first):
npm install
-
Start the Expo server:
npx expo start -c
-
Open the app in the Expo Go app (available on iOS and Android) or in an emulator.
The backend is implemented in Python and uses Flask. To set up and run the backend:
-
Navigate to the
backend
directory:cd backend
-
Install required dependencies:
pip install -r requirements.txt
-
Set up environment variables:
Ensure your
.env
file contains the required backend paths and URLs. -
Run the server:
python app.py
or
flask run
The server will run on
http://127.0.0.1:5000
by default.
Etc:
If you encounter async
error, run following the command in the terminal:
pip install "flask[async]"
- build
npx expo export
- start
npx serve dist
.
├── app
│ ├── (tabs)
│ │ ├── \_layout.jsx: Layout for the tab pages
│ │ ├── captureFootSize.jsx: Capture foot size functionality
│ │ ├── index.jsx: Landing page
│ │ ├── measurePressure.jsx: Measure plantar pressure
│ │ ├── shoes.jsx: Shoe recommendations
│ │ └── userInput.jsx: User input page
│ ├── +not-found.tsx: 404 not found page
│ └── \_layout.jsx: Main layout for the app
├── app.json: Expo configuration file
├── assets: App assets (images, fonts, etc.)
├── backend
│ ├── app.py: Main backend server logic
│ ├── db_setup.py: Database setup script
│ ├── measure.py: Pressure measurement logic
│ ├── user_data.db: SQLite database for user data
│ └── pressure: Pressure analysis data and images
├── constants
│ └── Colors.ts: App-wide color constants
- Foot Measurement: Measure foot size and plantar pressure using arduino pressure sensor & camera inputs.
- Shoe Recommendation: Get personalized shoe recommendations based on foot pressure and size.
- User-Friendly Interface: Intuitive UI with React Native and Expo.
- Backend Support: A Python-based backend server for data analysis and storage. (pythonanywhere)
The app uses a consistent and clean color scheme defined in constants/Colors.ts
.
Here are the primary colors used:
- Green
green100
:#013D2A
(Primary green)green200
:#01624D
- Gray
gray100
:#FAFAFA
(Background)gray200
:#F5F5F5
gray300
:#9E9E9E
gray400
:#666
gray500
:#424242
- React Native
- Expo
- JavaScript
- Python
- Flask
- SQLite
- OpenCV
- Team Lead: Sun-a Choe (최선아) - App Design & Development, Sole Pressure Distribution Visualization
- Software Developer: Chaeri Kim (김채리) - App Features & Relative Foot Size Measurement Development
- Hardware Analyst: Ju-won Kwon (권주원), Jun-hong Bae (배준홍) - Sole Pressure Sensor & Arduino Connection
This project is licensed under the MIT License. See the LICENSE
file for more details.
To be updated later