{"id":24810549,"url":"https://github.com/victorfrye/mockingmirror","last_synced_at":"2026-04-03T23:34:40.323Z","repository":{"id":274565617,"uuid":"916640153","full_name":"victorfrye/mockingmirror","owner":"victorfrye","description":"🤡 Mirror, mirror on the screen, who knows nothing about AI at all?","archived":false,"fork":false,"pushed_at":"2025-02-10T21:55:04.000Z","size":383,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-10T22:32:51.523Z","etag":null,"topics":["ai","aspire","azure","csharp","css","demo","dotnet","fluentui","html","javascript","nodejs","reactjs","typescript","vitejs","webapp"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/victorfrye.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-14T13:50:07.000Z","updated_at":"2025-02-03T20:24:06.000Z","dependencies_parsed_at":"2025-01-29T19:30:47.776Z","dependency_job_id":null,"html_url":"https://github.com/victorfrye/mockingmirror","commit_stats":null,"previous_names":["victorfrye/aiaasdemo","victorfrye/mockingmirror"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victorfrye%2Fmockingmirror","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victorfrye%2Fmockingmirror/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victorfrye%2Fmockingmirror/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victorfrye%2Fmockingmirror/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/victorfrye","download_url":"https://codeload.github.com/victorfrye/mockingmirror/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245468014,"owners_count":20620296,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","aspire","azure","csharp","css","demo","dotnet","fluentui","html","javascript","nodejs","reactjs","typescript","vitejs","webapp"],"created_at":"2025-01-30T12:17:12.510Z","updated_at":"2025-12-30T19:03:49.879Z","avatar_url":"https://github.com/victorfrye.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mocking Mirror\n\n🤡 Mirror, mirror on the screen, who knows nothing about AI at all?\n\n## Overview\n\nThis repository contains the public code for the EDJEovation Days 2024 hackathon project to create an AI solution that can comment on video of a user and provide them with feedback on their appearance, with a sarcastic twist. The project is called the Mocking Mirror.\n\nThis version of the project has been modified for public use and maintenance by myself. The original project was created by a team of Leading EDJE developers.\n\nThe solution for this hackathon includes:\n\n🌐 A React web client application for user interactivity and presentation.\n\n💜 An ASP.NET Core Web API that processes an image and returns text and audio responses.\n\n✨ Azure AI services for generative image-to-text and text-to-speech synthesis.\n\n🛠️ .NET Aspire for orchestration of the local development environment.\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Table of Contents](#table-of-contents)\n- [Get Started](#get-started)\n  - [Prerequisites](#prerequisites)\n  - [.NET Aspire](#net-aspire)\n  - [Set up Azure AI services](#set-up-azure-ai-services)\n  - [HTTPS](#https)\n  - [Clone the repo](#clone-the-repo)\n  - [Set user secrets](#set-user-secrets)\n  - [Run the app](#run-the-app)\n- [Acknowledgements](#acknowledgements)\n\n## Get Started\n\n### Prerequisites\n\nTo run this project, you will need to have the following software installed on your machine:\n\n- [Git](https://git-scm.com/downloads)\n- [.NET 9 SDK](https://dotnet.microsoft.com/en-us/download)\n- [Node.js](https://nodejs.org/en/download/)\n- An OCI compliant container runtime, e.g.:\n  - [Docker Desktop](https://www.docker.com/get-started/)\n- An IDE or text editor of your choice\n  - [Visual Studio](https://visualstudio.microsoft.com/downloads/)\n  - [Visual Studio Code](https://code.visualstudio.com/download)\n\n*WARNING: Additional changes may be required if using an alternative to Docker Desktop.*\n\n### .NET Aspire\n\nThis project uses .NET Aspire to orchestrate the local development environment. This simplifies the process of running the frontend and backend services together.\n\nFor more information on or troubleshooting .NET Aspire, see the [Aspire documentation](https://learn.microsoft.com/en-us/dotnet/aspire/get-started/aspire-overview).\n\n### Set up Azure AI services\n\nThis project uses multiple backing Azure AI services. To run the application, you will need to set up the following services:\n\n- [Azure AI Services](https://azure.microsoft.com/en-us/products/ai-services/)\n  - [Azure OpenAI Service](https://azure.microsoft.com/en-us/products/ai-services/openai-service)\n  - [Azure AI Speech](https://azure.microsoft.com/en-us/products/ai-services/ai-speech/)\n\nYou will also need to deploy a vision-enabled model to your OpenAI service. Additionally, you may need to adjust the content filters to allow for the generation of sarcastic responses. For more information, see the [Azure OpenAI documentation](https://learn.microsoft.com/en-us/azure/ai-services/openai/).\n\nInfrastructure as code (IaC) is provided in the [Infra](./infra) directory to help you deploy the necessary resources. The IaC is written in Bicep and can be deployed using the Azure CLI or Azure PowerShell with the following steps:\n\n1. Update the parameters in the [main.bicepparam](./infra/main.bicepparam) file.\n\n2. Run the following respective Azure CLI or Azure PowerShell command with your resource group name (use -WhatIf flag to preview changes):\n\n```pwsh\nNew-AzResourceGroupDeployment -Name MockingMirrorInit -ResourceGroupName '\u003crg-name\u003e' -Mode Complete -TemplateFile ./infra/main.bicep -TemplateParameterFile ./infra/main.bicepparam\n```\n\n```bash\naz deployment group create --resource-group '\u003crg-name\u003e' --mode Complete --template-file ./infra/main.bicep --parameters ./infra/main.bicepparam\n```\n\n*WARNING: Azure AI services may require a subscription and may incur costs. Be sure to review the pricing and terms of service before using these services.*\n\n### HTTPS\n\nThis project uses HTTPS for local development. This requires the use of a trusted certificate. Before running the application, the following command will check for an existing certificate or generate a new one.\n\n```pwsh\ndotnet dev-certs https --trust\n```\n\n### Clone the repo\n\nTo clone the repository, run the following command in your terminal:\n\n```pwsh\ngit clone https://github.com/victorfrye/mockingmirror.git\n```\n\n### Set user secrets\n\nTo run the application, you will need to set the user secrets for the `WebApi` project. An [example file](./src/WebApi/secrets.Example.json) is provided sharing the flattened document structure and variables expected. To set the user secrets, run the following PowerShell script with your modified file command in the root of the project or use your IDE:\n\n```pwsh\nGet-Content ./path/to/your/usersecrets.json | dotnet user-secrets set --project ./src/WebApi/WebApi.csproj\n```\n\n*WARNING: The example file should be copied outside the repository and modified. Modifying the file directly or a copy inside the repository may accidentally push secrets to the origin repository.*\n\n### Run the app\n\nTo run the application, simply start the `AppHost` project with the following command in the root of the project or your IDE:\n\n```pwsh\ndotnet run --project ./src/AppHost/AppHost.csproj\n```\n\n## Acknowledgements\n\nThis project was created by a team of Leading EDJE developers for the EDJEovation Days 2024 hackathon. It won second place. The original project was created by:\n\n- [Victor Frye](https://linkedin.com/in/victorfrye)\n- [Matt Eland](https://linkedin.com/in/matteland/)\n- [Terry Welsh](https://linkedin.com/in/terry-welsh/)\n- [Jon Trotter](https://linkedin.com/in/jon-trotter/)\n- [Bob Fornal](https://linkedin.com/in/rfornal/)\n- [Ben Schwemlein](https://linkedin.com/in/benschwemlein/)\n- [Julie Yakunich](https://linkedin.com/in/julieyakunich/)\n- [Dave Michels](https://linkedin.com/in/davidmichels/)\n\nThe project was modified for public use and maintenance by myself, Victor Frye. However, it would not have been a reality if not for each of these individuals and the support of [Leading EDJE](https://leadingedje.com/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvictorfrye%2Fmockingmirror","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvictorfrye%2Fmockingmirror","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvictorfrye%2Fmockingmirror/lists"}