diff --git a/README.md b/README.md index 2cd137e..a92923c 100644 --- a/README.md +++ b/README.md @@ -1 +1,82 @@ # shopping-assistant-web-client +Client web interface for a Shopping Assistant that utilizes Natural Language Processing (NLP) technology to interpret user queries for products and gifts. Users interact through a chat-style interface to communicate their shopping requirements. + +## Table of Contents +- [Features](#features) +- [Stack](#stack) +- [Installation](#installation) + - [Prerequisites](#prerequisites) + - [Setup Instructions](#setup-instructions) +- [Configuration](#configuration) + +## Features +- Chat-style interface for querying products and gifts using natural language. +- Personalized wishlists and cart management. +- Real-time chat message updates and suggestion handling. +- User authentication with email or phone number. +- User profile management and settings. +- Display of top deals and product cards with images, ratings, and prices. +- Integration with Amazon through affiliate links. +- Responsive frontend built with Blazor Server. +- Confirmation modals for destructive actions (e.g., deleting chats). +- Use of GraphQL for API communication. + +## Stack +- C# & .NET 7.0 with Blazor Server for frontend. +- GraphQL.Client for API and GraphQL interactions. +- Newtonsoft.Json for JSON serialization/deserialization. +- Blazored.Modal for modal dialogs. +- CSS with Bootstrap 5 for styling. +- Natural Language Processing (NLP) support via backend (API). +- Azure DevOps / GitHub Actions for CI/CD and deployment. + +## Installation + +### Prerequisites +- .NET 7.0 SDK or later. +- A code editor or IDE compatible with Blazor, e.g., Visual Studio 2022 or VS Code with C# extension. +- Docker (optional) if using the provided devcontainer setup. +- Internet access for restoring NuGet packages. +- Access to the corresponding backend API (shopping-assistant-api). + +### Setup Instructions +1. Clone this repository: + ```bash + git clone https://github.com/Shchoholiev/shopping-assistant-web-client.git + cd shopping-assistant-web-client + ``` +2. Open the solution file `ShoppingAssistantWebClient.sln` in your IDE. +3. Restore the NuGet packages: + ```bash + dotnet restore + ``` +4. Configure API URL in `appsettings.Development.json` or `appsettings.Production.json`. +5. Run the project: + ```bash + dotnet run --project ShoppingAssistantWebClient.Web + ``` + or use your IDE's run/debug feature. +6. Access the client at `https://localhost:{port}` as indicated in the launch settings. +7. Use the chat interface to start interacting with the shopping assistant. + +*Optional*: +- Use the `.devcontainer/devcontainer.json` to run with VS Code Remote - Containers extension for a ready development environment. +- Use GitHub Actions workflows for automated build and deployment to Azure. + +## Configuration + +### API URL +Set the backend API URL in the respective environment configuration file: + +- For development: `ShoppingAssistantWebClient.Web/appsettings.Development.json` +- For production: `ShoppingAssistantWebClient.Web/appsettings.Production.json` + +Example: +```json +{ + "ApiUrl": "https://shopping-assistant-api.azurewebsites.net/" +} +``` + +### Environment Variables +- `ASPNETCORE_ENVIRONMENT`: Set to `Development` or `Production` accordingly.