About the Project

Inspiration

Since we were only a team of two, we initially felt we might be at a disadvantage compared to teams of four. To stay competitive and maximize our strengths, we decided to tackle the Mini Challenge instead, which focused on optimizing the use of computer labs.
The challenge resonated with us because it addressed a practical, everyday issue: students wasting time looking for available computers. We wanted to create a simple and effective solution that could have a real impact.

What We Learned

Throughout the project, we learned how to:

  • Work with external APIs (LabStats API) and handle authentication securely.
  • Manage asynchronous operations and API data transformation in Next.js.
  • Handle and debug unexpected API responses effectively.
  • Collaborate efficiently in a small team setting and divide responsibilities clearly.

How We Built It

  • Backend: We used Next.js API Routes to fetch and process lab and computer availability data from the LabStats API.
  • Frontend: We structured a simple UI that displays available computers by lab.
  • Development Process:
    • Fetched groups (labs) and computers (machines) data separately.
    • Matched computers to their corresponding lab using group_id.
    • Calculated the number of available computers dynamically.
    • Built a response format easy to integrate into a frontend.

We also ensured that the backend could gracefully handle API failures and invalid responses without crashing the app.

Challenges We Faced

  • Unexpected Data Structure: The computer data returned from the API was different than expected, leading to initial bugs in filtering and mapping logic.
  • Error Handling: We had to ensure the system remains stable even when API requests fail or data is malformed.
  • Small Team Size: With just two people, we had to manage both backend and frontend efficiently without overcomplicating the project.
  • Time Pressure: We had to rapidly adapt and debug, making quick decisions to stay on track.

Despite these challenges, we delivered a working solution we are proud of!

Built With

Share this project:

Updates