A versatile voting platform where developers can showcase their projects and receive votes from the community.
Note: This project is inspired by and cloned from vote.gdgc.dev, the original voting platform created for GDG Cloud Da Nang Devfest 2025.
|
|
|
|
- Google OAuth 2.0 login
- Automatic user profile and avatar storage
- Submit projects with title, description, Gemini prompt, and thumbnail
- Responsive card gallery layout
- Thumbnail preview support for each project
- 5 votes per user
- Cannot vote for own projects
- No duplicate votes on the same project
- Unvote option to reclaim votes
- Real-time ranking updates based on votes
- Special visual styling for top 3 projects
- Fully responsive design
- Neo-brutalism design with bold borders and shadows
- Official GDG brand colors
- Built with Tailwind CSS
- Smooth animations and transitions
- ASP.NET Core 8.0
- Entity Framework Core
- SQL Server
- Google OAuth 2.0
- Razor Views
- Tailwind CSS
- Bootstrap 5
- JavaScript
Users
├── Id (PK)
├── GoogleId
├── Email
├── Name
├── AvatarUrl
└── CreatedAt
Projects
├── Id (PK)
├── Title
├── Description
├── Prompt
├── ProjectLink
├── ThumbnailLink
├── UserId (FK)
└── CreatedAt
Votes
├── Id (PK)
├── UserId (FK)
├── ProjectId (FK)
└── VotedAt
votegdgc/
├── Controllers/
│ ├── AccountController.cs # Google OAuth login/logout
│ ├── HomeController.cs # Index, Vote, Leaderboard
│ └── ProjectsController.cs # Create, Vote, Unvote
├── Data/
│ └── AppDbContext.cs # EF Core DbContext
├── Migrations/
│ └── ... # Database migrations
├── Models/
│ ├── User.cs # User entity
│ ├── Project.cs # Project entity
│ ├── Vote.cs # Vote entity
│ └── ErrorViewModel.cs
├── Views/
│ ├── Home/
│ │ ├── Index.cshtml # Landing page
│ │ ├── Vote.cshtml # Project gallery
│ │ └── Leaderboard.cshtml # Rankings
│ ├── Projects/
│ │ └── Create.cshtml # Submit form
│ └── Shared/
│ ├── _Layout.cshtml # Main layout
│ └── Error.cshtml
├── wwwroot/
│ ├── assets/ # Images & screenshots
│ ├── css/
│ │ ├── tailwind.css # Tailwind styles
│ │ └── site.css # Custom styles
│ └── js/
│ └── site.js
├── appsettings.json
├── Program.cs
└── votegdgc.csproj
- Login with your Google account
- Submit your project with title, description, Gemini prompt, and thumbnail
- Browse the gallery and vote for projects you like (5 votes maximum)
- Unvote if you change your mind
- Check the leaderboard to see rankings
- Access database via SQL Server Management Studio or Azure Data Studio
- Monitor logs through console output
- Perform regular database backups
Edit Models/User.cs:
public int RemainingVotes => 5 - (Votes?.Count ?? 0); // Change 5 to your preferred limitEdit wwwroot/css/tailwind.css:
--gdg-blue: #4285f4;
--gdg-red: #ea4335;
--gdg-yellow: #fbbc04;
--gdg-green: #34a853;Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is open source and available for community use.
This project is inspired by and cloned from vote.gdgc.dev, the original voting platform created for GDG Cloud Da Nang Devfest 2025.
Special thanks to:
- Original creators at vote.gdgc.dev - For the amazing concept and implementation
- GDG Cloud Da Nang community
- Google Developer Groups
- Tailwind CSS
Post2Vote - A community voting platform



