This week was a little different. I took a few days off to travel to Indonesia for a university programme, so I wasn’t around my laptop as much as usual. But once I got back, I tried my best to quickly get back into the flow and pick up where I left off. Surprisingly, the short break helped me reset my mind, and I came back seeing a few things more clearly.

Understanding Sorting From the User’s Perspective

Before touching code, my DR left a comment that made me pause:

“Make Marks, Results, etc sortable. Think about what cases might be needed by the user — sorting is not for fun; it’s for the purpose of quickly finding data or gaining insights.”

So I spent time thinking like a user. Judges need to spot top scores, organizers want to see all prize winners together, and admins track performance queues. Testing the app revealed that many fields, especially Marks and Prize, weren’t sortable at all. No wonder workflows felt limited.

Improving Sorting Where It Matters

Marks came first. It was displayed as a FunctionField showing an array of marks — pretty, but unsortable. I added source="total" so users could sort by total score while still seeing the full array. Simple change, but it really helped.

Results was trickier. I initially tried a custom prize hierarchy (TOP → FIRST → SECOND → THIRD) with tests and dummy data. After review, my DR suggested removing it, filtering was enough. Lesson learned: simple solutions often win.

Roles needed only alphabetical sorting. Adding source="id" did the trick instantly. Not every fix has to be complicated, and these small wins feel meaningful.

Stepping Into Something New: Mobile-Friendly UX

I also began exploring mobile UX. The current admin UI is designed entirely for desktop, with seven Datagrid-heavy List components. Tables look cramped on mobile and are hard to use.

React Admin’s useMediaQuery and SimpleList let us detect screen size and show a touch-friendly list on mobile. It sounds simple, but I need to test carefully to make sure filters, pagination, sorting, and live CouchDB updates all still work.

I’m starting with the simplest lists, documenting my approach, and planning gradual implementation. It’s a new challenge, but a great learning opportunity.

Reflections & Insights

With about a month and a half left in my internship, I’m trying to make the most of every learning opportunity. The project felt massive at first; now I feel more confident, but there’s still so much to learn. I’m trying not to rush as I want to do it right and absorb as much as I can.

  • Pausing to understand user needs is more valuable than rushing into code.
  • Removing unnecessary code is sometimes more important than writing new logic.
  • Mobile UX is a new challenge, but I’m excited to learn it.
  • Even near the end of my internship, I’m still only beginning to understand the bigger picture — and that’s part of the process.

What’s Next

Next week, I’ll start implementing mobile layouts and testing them thoroughly. It’ll be challenging, but I’m ready to take it step by step and do it thoughtfully.


0 Comments

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.