Developed by Jonathan Lun, Mahlon Reese, and Melanie Ehrlich
MyVote is a secure, full-stack web application designed to simplify and modernize the poll process.
- User-Friendly Voting Interface: Clean, responsive UI for voting easily on desktop or mobile.
- Real-Time Results: Live updates as votes are submitted, powered by SignalR.
- PDF Results Generation: Auto-generate voter participation results.
- Admin Dashboard: Manage polls, and monitor vote counts.
- QR Code Sharing: Share polls easily with QR codes.
- Interactive Charts: Visualize poll outcomes with dynamic graphs.
- Frontend: React.js, Vite, Material UI (MUI)
- Backend: ASP.NET Core (.NET 8)
- Database: Entity Framework Core with SQL Server / PostgreSQL
- Real-Time Communication: SignalR
- PDF & Canvas Tools: jsPDF, html2canvas
- Visualization: Chart.js, D3
reactreact-domreact-router-dom@mui/material@emotion/react,@emotion/styled@microsoft/signalrframer-motionchart.js,d3jspdf,html2canvasqrcode.react,react-qr-codereact-iconsreact-toastifyreact-useanimations@uidotdev/usehooks@react-pdf/renderer
viteeslint,eslint-plugin-react,eslint-plugin-react-hooks@testing-library/*,vitest,msw
Microsoft.AspNetCore.CorsMicrosoft.AspNetCore.SignalRMicrosoft.AspNetCore.SpaProxyMicrosoft.Azure.SignalRMicrosoft.EntityFrameworkCore(Core, SQLServer, Tools, Design)Npgsql.EntityFrameworkCore.PostgreSQLSwashbuckle.AspNetCore
For full deployment instructions to Azure App Service, see below 👇
- Create a resource group following your naming convention.
- Example:
rg-{app name}.
- Example:
- Create an Azure App Service resource.
- Link your GitHub repository.
- The repository should include both client and server files.
- Choose the branch to deploy from (typically
main). - Create a YAML workflow file for automated deployment.
- Adjust the auto-generated workflow file to:
- Install Node.js.
- Run
npm installand any other necessary commands for the client. - Build the React application (
npm run build).
- Configure the backend deployment:
- Install .NET dependencies.
- Run necessary build and publish commands for the backend.
- Help:
- Check our workflow file for help
- Create an Azure SQL Server and Database.
- Use SQL Authentication.
- Retrieve the connection string and add it to
appsettings.json:{ "ConnectionStrings": { "DefaultConnection": "your-connection-string-here" } }
- Visit https://your-react-app.azurewebsites.net to verify the frontend.
- Check https://your-aspnet-app.azurewebsites.net/api/health to verify the backend.
- Check logs using:
az webapp log tail --name YourApp --resource-group YourResourceGroup
- Ensure the correct API URL is set in the frontend environment variables.
Your React + ASP.NET application is now successfully deployed on Azure! 🚀