Skip to content

Phonemate is an phone recommendation system that assists users in finding their ideal smartphone based on their preferences. By answering a series of questions, users can provide specific criteria such as camera preference, battery life and so on.Phonemate then displays a list of phones to the user.

License

Notifications You must be signed in to change notification settings

leroydsilva/PhoneMate

Repository files navigation

Welcome to PhoneMate

License: MIT

Phonemate

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

Tech Stack

Frontend: React, scss

Backend: Flask, SQLAlchemy

Database: MySql, RDS

Server: AWS EC2, AWS Amplify, AWS LoadBalancer

Tech Stack Logo Tech Stack Logo

Tech Stack Logo

Features

  • 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

Environment Variables

To run this project, you will need to add the following environment variables to your .env file

SECRET_KEY

FLASK_APP

SQLALCHEMY_DATABASE_URI

Getting Started

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.

License

MIT

Acknowledgements

Feedback

If you have any feedback, please reach out to me at [email protected]

Author

👤 Leroy Dsilva

About

Phonemate is an phone recommendation system that assists users in finding their ideal smartphone based on their preferences. By answering a series of questions, users can provide specific criteria such as camera preference, battery life and so on.Phonemate then displays a list of phones to the user.

Topics

Resources

License

Stars

Watchers

Forks

Languages