🚀 Inspiration

Cities struggle to meaningfully engage citizens beyond passive participation. Community events, volunteering, and civic meetings often see low turnout because there’s little feedback or incentive loop.

CityPoints was inspired by the idea that participation should feel rewarding, visible, and motivating — just like fitness apps or gamified learning platforms.

💡 What it does

CityPoints is a civic engagement platform that rewards citizens for participating in city events and activities.

Users can:

Log in and view their points and community rank

Browse upcoming city events

RSVP to events and earn pending points

Check in at events to convert pending points into real points

Unregister from events if plans change

Compete on a leaderboard with other citizens

Track participation directly from a clean dashboard

Points are awarded only after real participation, encouraging genuine engagement rather than fake sign-ups.

🛠️ How we built it

CityPoints is a full-stack web application built with modern tools:

Frontend

React + TypeScript

Context API for global state management

Optimistic UI updates for smooth UX

Responsive dashboard with real-time updates

Modular components (Events, Dashboard, Leaderboard)

Backend

REST API with authentication

Persistent RSVP and check-in handling

User-scoped event registration

Points awarded only after verified check-in

Leaderboard aggregation

Key Technical Features

Optimistic RSVP system Users instantly see “Registered (X points pending)” without waiting for server response.

Pending vs awarded points model Prevents point abuse while keeping UX engaging.

User-isolated state RSVPs and points are correctly scoped per user.

Real-time leaderboard updates

Safe unregister flow with rollback on failure

🎯 Challenges we ran into

Designing an RSVP system that feels instant but stays accurate

Preventing RSVP state from leaking across users

Handling optimistic UI without desyncing from backend data

Ensuring points are only awarded for real participation

Balancing clean UI with technical transparency

🏆 Accomplishments we’re proud of

Built a real RSVP + check-in flow, not a mock demo

Implemented pending points, a feature many production apps get wrong

Designed a system that encourages real-world action

Created a clean, demo-ready dashboard judges can understand quickly

Rebuilt the project cleanly after major refactors

🌱 What’s next for CityPoints

QR-based on-site check-in with geo/time validation

City admin dashboard for event creation

Badges and streaks (e.g., “Community Champion”)

Integration with real municipal APIs

Mobile app version

Fraud prevention (location + time windows)

🧠 Why this matters

CityPoints turns civic duty into civic pride.

By making participation visible, rewarding, and social, CityPoints has the potential to:

Increase turnout at community events

Encourage volunteering

Strengthen trust between cities and citizens

Make cities more participatory and human-centered

Built With

Share this project:

Updates