Phonemate is a project that recommends phones to users based on the options they select. It consists of a Python Flask API for the backend, a React frontend, and uses MySQL as the database. The backend is deployed on Amazon EC2 with a load balancer, while the frontend is deployed on AWS Amplify. The project is open source and released under the MIT License
Frontend: React, scss
Backend: Flask, SQLAlchemy
Database: MySql, RDS
Server: AWS EC2, AWS Amplify, AWS LoadBalancer
- Recommends phones based on user-selected options.
- Provides a user-friendly interface for easy interaction.
- Backend API built with Python Flask for efficient data processing.
- Frontend developed using React for a responsive and dynamic user experience.
- Utilizes MySQL database for storing phone data and user preferences.
- Scalable deployment on Amazon EC2 with load balancing for high availability.
- Easy deployment of frontend on AWS Amplify for seamless integration.
- Data scraped from gadgets360.com to populate the phone database
To run this project, you will need to add the following environment variables to your .env file
SECRET_KEY
FLASK_APP
SQLALCHEMY_DATABASE_URI
Clone the project
git clone https://github.com/leroydsilva/PhoneMate.git
Go to the project directory
cd PhoneMate
Create a virtual environment for the project:
python3 -m venv venv
Activate the virtual environment:
On macOS and Linux:
source venv/bin/activate
On Windows:
venv\Scripts\activate
Install the project dependencies:
pip install -r requirements.txt
Set up the frontend submodule:
git submodule init
git submodule update
cd frontend
Install the required dependencies:
npm start
Start the development server:
Start the backend server:
python run.py
Start the frontend development server:
npm start
Access the Phonemate application at https://localhost:3000 in your browser.
If you have any feedback, please reach out to me at [email protected]
👤 Leroy Dsilva
- Github: @leroydsilva
- LinkedIn: @https://www.linkedin.com/in/leroydsilva/