Inspiration

Surely most students know the perils of scheduling conflicts. Scheduling a meeting between three students is almost feasible, but that "almost" does more and more heavy lifting the more students you add. By the time you have a group of 6 attempting to play D&D, it becomes a miracle any gameplay happens at all.

We decided to build our project, a full-stack website, because of real issues we have faced ourselves. Our choices throughout Orbit's design and implementation were motivated primarily by one core thought: if we were to use this product, what would we, as students of UTD, want to see in it?

What it does

The main goal of Orbit is to allow UTD students to easily determine what times they and their friends are mutually available. There are two steps to this. First, we have users input the courses they are taking and other times they have obligations. Then, students are able to look up the usernames of a group of their friends and instantly see their schedule side by side in a heatmap that showcases the group's overall availability at certain times in an efficiently comprehensible manner.

How we built it

Our tech stack is based on 3 central tools. Our frontend utilizes React and backend uses Express.js and Node.js, and MongoDB with Mongoose for our database. We also integrated the Nebula API to pull in UTD course data, and used Figma during the design phase before writing the code.

Initially, we split our team of four into two. Shubhi and Charvisree were responsible primarily for the Figma design and frontend while Asha and Natalie were responsible primarily for the backend and database.

For the backend, the process was one that weaved between collaboration and working individually. Asha and Natalie learned about databases together and discussed at length the schema for our database before settling on a design that could cleanly represent the users, their schedules, and course data pulled from the Nebula API.

Challenges we ran into

The most notable challenge of this project was integrating MongoDB into it. In fact, the primary contention against the idea of a scheduling app itself was that no one from our team had any experience whatsoever working with databases. We decided to go for it anyway in the spirit of hackathons, and thus followed a large learning curve, one helped very little by the pressing desire to simply jump into it and be able to demo on time.

Another challenge we struggled quite a bit with was our divergent visions for the final product. Four people means four sets of instincts about what the app should look like, what features matter most, and where to draw the line between "essential" and "nice to have." Reaching an agreement took real communication and doing that while having less time was a constant balancing act.

Connecting the frontend and backend cleanly was also harder than expected. Making sure data flowed correctly from MongoDB through Express to React and that it all rendered the way the design intended which required careful coordination between both halves of the team, especially late into the night.

Accomplishments that we're proud of

Built a full-stack app with zero prior database experience. None of us had touched MongoDB before this weekend. By the end, we had a working schema, a connected backend, and data flowing end-to-end.

It is easy to spend a hackathon on a half-finished idea. Orbit has a login, a dashboard, a calendar, and a compare view — a complete user journey from start to finish.

Design-first development paid off. Starting in Figma before writing any code kept both halves of the team aligned and made the frontend work significantly faster.

What we learned

How to design and implement a MongoDB schema from scratch, including thinking carefully about how to represent recurring weekly schedules in a way that is queryable and efficient.

How to connect a React frontend to a Node/Express backend via HTTP requests, and how to structure an API around the needs of the UI.

How to use Mongoose as an abstraction layer over MongoDB, and how much it simplifies working with documents in a typed, structured way.

What's next for Orbit

"Future plans" became a rueful motto during the 24 or so hours we hacked away at Orbit. There were a multitude of features and improvements we simply did not have the time to get to.

  • A live scheduler that can be sent out and populated with immediate times, similar to that of when2meet.
  • Support for non-weekly events like concerts (one day) or labs (every other week) and individual dates.
  • More intuitive course/section selectors.
  • A friends feature, allowing quick searchability of whose availability matters to you.
  • Better privacy features, including the ability for users to limit the scope of their visibility to others to no one, friends, friends of friends, or everyone.
  • Better scraping.
  • Better account support: signing in with google, resetting passwords, and storing passwords securely.
Share this project:

Updates