diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..a7446fe --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,23 @@ +name: Deploy to Vercel + +on: + push: + branches: [main] + +jobs: + deploy: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Install Vercel CLI + run: npm install -g vercel + + - name: Deploy to Vercel + run: vercel --prod --yes --token=${{ secrets.VERCEL_TOKEN }} + env: + VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} + VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} + diff --git a/README.md b/README.md index ba1a2dc..fa3daf9 100644 --- a/README.md +++ b/README.md @@ -16,4 +16,5 @@ We can use Fit Check to offer tailored product suggestions, generating revenue t - + + diff --git a/fitcheck/SystemArchitecture.md b/fitcheck/SystemArchitecture.md new file mode 100644 index 0000000..628968e --- /dev/null +++ b/fitcheck/SystemArchitecture.md @@ -0,0 +1,25 @@ +## FitCheck Architecture + +This document outlines the system architecture for the FitCheck Chrome Extension. + +![FitCheck Architecture Diagram](./componentdiagram_tahsina.png) + +## Description + +The system architecture of FitCheck involves a user interacting through a React-based Chrome Extension and a hosted website (via Vercel). User data—such as style preferences, product interactions, and survey responses—is sent via HTTPS to a Supabase backend, which handles authentication, data storage, and retrieval. The extension also submits product reviews, which are processed in-browser using a built-in Sentiment Analysis Model powered by TensorFlow.js. This model does not rely on external APIs, allowing the Chrome Extension to analyze sentiment locally. The output from this model is passed directly to a lightweight LLM Engine—also running in-browser—which uses the data to generate product recommendations. These recommendations are returned to the extension and displayed to the user in real time. By keeping both the Sentiment Model and LLM Engine client-side, the system ensures low latency and stronger privacy, while Supabase continues to serve as the backbone for persistent data and user state management. + + +## Entity Relationship Diagram + +![FitCheck Entity Relationship Diagram](./entity_relationship_tahsina.png) + + +The diagram outlines the core entities in FitCheck and how they interact. Users have style profiles, set budgets, and submit survey responses. They make purchases and leave product reviews, which are analyzed for sentiment. Products are linked to purchases and reviews, while recommendations are generated based on user activity and sentiment scores. These connected tables enable personalized, data-driven suggestions within the app. + +## Sequence Diagram + +![FitCheck Sequence Diagram](./updatedseqdiagram_tahsina.png) + +This sequence diagram illustrates the flow of data when a user submits a product review through the FitCheck Chrome Extension. After being prompted, the user submits feedback, which is sent to the Supabase backend. Supabase then forwards the review to the Sentiment Analysis Model for evaluation. The model returns a sentiment label and score, which are stored in the database and used to update the recommendation logic. This updated data is passed to the LLM Engine, which generates personalized product suggestions. Finally, the Chrome Extension receives the new recommendations and displays them to the user in real time. + + diff --git a/fitcheck/componentdiagram_tahsina.png b/fitcheck/componentdiagram_tahsina.png new file mode 100644 index 0000000..dcdbf8e Binary files /dev/null and b/fitcheck/componentdiagram_tahsina.png differ diff --git a/fitcheck/entity_relationship_tahsina.png b/fitcheck/entity_relationship_tahsina.png new file mode 100644 index 0000000..a9baccd Binary files /dev/null and b/fitcheck/entity_relationship_tahsina.png differ diff --git a/fitcheck/highlevelcomponentdiagram.png b/fitcheck/highlevelcomponentdiagram.png new file mode 100644 index 0000000..ee133ad Binary files /dev/null and b/fitcheck/highlevelcomponentdiagram.png differ diff --git a/fitcheck/sequencediagram_tahsina.png b/fitcheck/sequencediagram_tahsina.png new file mode 100644 index 0000000..d426dfe Binary files /dev/null and b/fitcheck/sequencediagram_tahsina.png differ diff --git a/fitcheck/updatedhighcomp_tahsina.png b/fitcheck/updatedhighcomp_tahsina.png new file mode 100644 index 0000000..dcdbf8e Binary files /dev/null and b/fitcheck/updatedhighcomp_tahsina.png differ diff --git a/fitcheck/updatedseqdiagram_tahsina.png b/fitcheck/updatedseqdiagram_tahsina.png new file mode 100644 index 0000000..b2c0b7e Binary files /dev/null and b/fitcheck/updatedseqdiagram_tahsina.png differ