How claomike/dlf-voting-website works
DLF Voting is an internal voting website. Users sign in, view voting status and available options, then cast or review their vote; administrators manage the vote, options, users, administrator accounts, and voting availability, and review vote totals. The frontend calls an ASP.NET API backed by PostgreSQL. The README establishes the two-part application; sampled frontend hooks and backend controllers support the shown request paths. Several controller and auth implementations were not sampled, so uncertain internal wiring is omitted.
Main entry points: App.tsx Routes and layout · DlfVotingDbContext.cs EF data access · useVotingData.ts Voting data hook · VotingOptionsController.cs Voting options API
Components 33
Voting website
- Routes and layout
frontend/src/App.tsx - Voting page
frontend/src/pages/Welcome/Welcome.tsx - Voting data hook
frontend/src/pages/Welcome/useVotingData.ts - User login
frontend/src/pages/UserLogin.tsx - Admin login
frontend/src/pages/AdminLogin.tsx
Administration
- Vote overview
frontend/src/pages/admin/AdminOverview/AdminOverview.tsx - Overview data hook
frontend/src/pages/admin/AdminOverview/useVotesData.ts - User management
frontend/src/pages/admin/AdminUsers/AdminUsers.tsx - User actions
frontend/src/pages/admin/AdminUsers/useUserActions.ts - Administrator management
frontend/src/pages/admin/AdminAdministrators/AdminAdministrators.tsx - Administrator actions
frontend/src/pages/admin/AdminAdministrators/useAdministratorActions.ts - Voting options management
frontend/src/pages/admin/AdminVotingOptions/AdminVotingOptions.tsx - Option actions
frontend/src/pages/admin/AdminVotingOptions/useVotingOptionActions.ts - Voting settings page
frontend/src/pages/admin/AdminSettings/AdminSettings.tsx - Voting status hook
frontend/src/pages/admin/AdminSettings/useVotingStatus.ts
API and identity
- Auth providers
frontend/src/context/UserAuthContext.tsx - Admin auth provider
frontend/src/context/AdminAuthContext.tsx - User authentication
backend/src/DlfVoting.Api/Controllers/UserAuthController.cs - Admin authentication
backend/src/DlfVoting.Api/Controllers/AdminAuthController.cs - Votes API
backend/src/DlfVoting.Api/Controllers/VotesController.cs - Users API
backend/src/DlfVoting.Api/Controllers/UsersController.cs - Administrators API
backend/src/DlfVoting.Api/Controllers/AdministratorsController.cs - Voting options API
backend/src/DlfVoting.Api/Controllers/VotingOptionsController.cs - Settings API
backend/src/DlfVoting.Api/Controllers/SettingsController.cs
Voting data
- EF data access
backend/src/DlfVoting.Infrastructure/DlfVotingDbContext.cs - Votes
backend/src/DlfVoting.Domain/Vote.cs - Users
backend/src/DlfVoting.Domain/User.cs - Administrators
backend/src/DlfVoting.Domain/Administrator.cs - Voting options
backend/src/DlfVoting.Domain/VotingOptions.cs - Voting settings
backend/src/DlfVoting.Domain/VotingSettings.cs
Other components
- Voter
- Administrator
- PostgreSQL
Connections 35
- Voter → Routes and layout: uses
- Administrator → Routes and layout: uses
- Routes and layout → Voting page: routes
- Routes and layout → Vote overview: routes
- Routes and layout → User management: routes
- Routes and layout → Administrator management: routes
- Routes and layout → Voting options management: routes
- Routes and layout → Voting settings page: routes
- Routes and layout → User login: routes
- Routes and layout → Admin login: routes
- Voting page → Voting data hook: loads data
- Voting data hook → Votes API: requests
- Voting data hook → Voting options API: requests
- Voting data hook → Settings API: requests
- Vote overview → Overview data hook: loads data
- Overview data hook → Votes API: requests
- Overview data hook → Voting options API: requests
- User management → User actions: manages
- User actions → Users API: requests
- Administrator management → Administrator actions: manages
- Administrator actions → Administrators API: requests
- Voting options management → Option actions: manages
- Option actions → Voting options API: requests
- Voting settings page → Voting status hook: loads status
- Voting status hook → Settings API: requests
- User login → Auth providers: uses
- Admin login → Admin auth provider: uses
- User authentication → EF data access: reads and writes
- Admin authentication → EF data access: reads and writes
- Votes API → EF data access: queries and saves
- Users API → EF data access: queries and saves
- Administrators API → EF data access: queries and saves
- Voting options API → EF data access: queries and saves
- Settings API → EF data access: queries and saves
- EF data access → PostgreSQL: persists