Been observing how class reps manage collections🤔
Messy workflow:
• Payments/receipts via WhatsApp
• Tracking is mental or in notebooks
• Things get lost/misrecorded
• Back-and-forth chaos
Bigger class = worse💀
Decided to build something for it🚀
#buildinpublic#indiedev
Rolled it out to existing users and the response has been really positive.
It made bulk payment and collection much faster.
Still observing.
Still iterating.
Still learning from real users.
Progress update: https://t.co/5ETEIQBaY2
Watching class reps work led to one of Roundup’s biggest improvements.
Instead of replacing their workflow, I digitized it
Turns out the best product feature is one your users already invented🤔
Full breakdown below 👇
#buildinpublic
Progress update: https://t.co/ZO0bJF7B7r
Been iterating closely with users and shipping improvements from feedback.
Added:
• Archive feature
• Invite system
• Class list search
• Better support & community pages
• UI improvements
Breakdown below👇
#buildinpublic#indiedev
Compared to the paper workflow, Roundup now lets reps:
• easily view status stats for each courses instantly
• track multiple items at once
• switch between overall and per-course views
• update records much faster
• see live progress instantly
Same workflow. Better tools.
Sometimes reps are only distributing one textbook.
So every course can also be opened individually.
That lets them focus on one distribution while still keeping everything connected.
When a student pays:
- The rep searches their name or reg number
- Tap the Add Item button
- Select every textbook/handout they paid for
- Roundup updates statues of every selected course instantly
- When the student collects an item, one tap marks it as collected
So I added a new Multi-item
Payment Task…
Users first add the courses they're offering for the semester.
When they create a multi-item task, Roundup automatically loads:
• the selected class list
• every course being tracked
No manual setup required.
That observation changed my thinking 🤔
Instead of replacing their workflow, I decided to preserve it digitally.
Good software shouldn't force people to relearn everything.
It should make familiar workflows faster and easier.
While observing reps, I noticed many already use a simple paper system.
Every student has one row.
Every textbook/handout gets its own column.
Students pay for multiple items at once.
Reps write them down.
When collected, they simply strike through them.
It was surprisingly fast.
Finished the export side of CellCraft
🔗: https://t.co/qAA5eQAyd4
Figured that Raw Excel output wasn't enough - needed styled headers, column widths, clean formatting
So I used the xlsx-js-style library for that
Full import→ export pipeline now works end to end
#buildInPublic
Finished the import side of my TypeScript practice project (CellCraft).
Hardest part:
Most Nigerian university class lists aren’t standardized—headers can appear anywhere in the first 15 rows, and reg number formats vary by school
Built a header scanner and regex to handle both
Finished the import side of my TypeScript practice project (CellCraft).
Hardest part:
Most Nigerian university class lists aren’t standardized—headers can appear anywhere in the first 15 rows, and reg number formats vary by school
Built a header scanner and regex to handle both
Been learning TypeScript for a while now🚀
Looking to reinforce it by rebuilding two core features from Roundup (imports and exports) as a mini project, entirely in TypeScript
Should be a good way to deepen my understanding through practice.
LFG🚀
#learninpublic#buildinpublic
Been observing how class reps manage collections🤔
Messy workflow:
• Payments/receipts via WhatsApp
• Tracking is mental or in notebooks
• Things get lost/misrecorded
• Back-and-forth chaos
Bigger class = worse💀
Decided to build something for it🚀
#buildinpublic#indiedev
What it does:
• Manage your full student roster in one place
• Track dues, payments, submissions and attendance cleanly
• Know exactly who’s paid or submitted and who hasn’t - instantly
Built with React + Supabase. Shipped and being used actively.
So I built Roundup.
A web app specifically for Nigerian university class reps to manage their class without the chaos.
No more WhatsApp receipt hunting. No more notebook tracking. No more things falling through the cracks.
Been learning TypeScript for a while now🚀
Looking to reinforce it by rebuilding two core features from Roundup (imports and exports) as a mini project, entirely in TypeScript
Should be a good way to deepen my understanding through practice.
LFG🚀
#learninpublic#buildinpublic
Looking to dive into backend dev 🚀
Starting off with a Baas (Supabase)
Goal: integrate it into my submission tracker app for cloud sync + user accounts across devices
First: I’d be learning the fundamentals of how everything works under the hood
#learninpublic#buildinpublic
Most of these changes came directly from user feedback.
Still iterating and trying to make Roundup simpler and more useful with every update.
#buildinpublic#100daysofcode
Progress update: https://t.co/ZO0bJF7B7r
Been iterating closely with users and shipping improvements from feedback.
Added:
• Archive feature
• Invite system
• Class list search
• Better support & community pages
• UI improvements
Breakdown below👇
#buildinpublic#indiedev
Progress update: https://t.co/ZO0bJF7B7r
Been iterating with real users and shipped several improvements based on feedback.
Focus areas:
• Smarter exports
• Smarter imports
• Better data validation
• Better onboarding
• UI/UX improvements
Full breakdown below👇
#indiedev
Added class list search 🔎
Finding a specific list is much easier now, especially for users managing multiple classes.
Also separated the support and community pages for better navigation.
Added an invite system 🚀
Makes it easier to onboard new users and share Roundup with others.
Still experimenting and improving the flow based on feedback.