Skip to content
Praveen Kumar
← All work

Jan 2024 – Mar 2025

Block Power

Community engagement and voting platform

A customizable platform for US organizations working on health, wealth, power-building and civic campaigns. Community ambassadors earn points by inviting people and completing challenges, then redeem rewards. About 250 users.

Role
Sole frontend engineer
Client
Harvard professor
ReactReduxMobile-firstRBACJWT

~250

users

1

app for every role

Problem

Ambassadors mostly used their phones, and several user types needed different features without a separate admin app.

Constraints

  • One frontend engineer.
  • Requirements came directly from the client on calls.

Architecture

One React app~250 usersRole-based accessone codebaseevery requestAmbassadorpoints, referrals, votingOther user typeseach sees its own features

What I built

01

Mobile-web-first

Designed for phone browsers first: forms, card UI, challenges, points, referral and reward flows, and voting and nomination screens.

02

Role-based access in one app

Multiple user types, each seeing different features, handled with role-based access control rather than a separate admin panel.

03

Direct client work

I estimated work and took requirement calls with the client alongside the project manager.

Decisions and trade-offs

No separate admin app

Choice: Role-based access inside one React app.

Trade-off: One codebase to maintain, with more care needed in routing and permissions.

Results

  • Delivered the full frontend for about 250 users.

What I'd do differently

  • Next time I would add automated tests around role permissions, so a change for one user type cannot leak features to another.

Next case study

Qbench →