Inspiration

During the add/drop week at Virginia Tech, we observed a recurring challenge among students. Many sought to switch into class times that better fit their schedules but were hindered by full classes. The existing method involved posting on social media platforms like Snapchat, hoping to find someone willing to trade class sections. This informal system was inefficient and risky. For instance, if one student dropped a class expecting another to take their spot, but the other student didn't follow through, the first student could lose their class entirely. Recognizing the need for a safer and more efficient solution, we developed HokieSWAP—a platform that serves as both an escrow and automation service for secure class swapping.

What It Does

HokieSWAP streamlines the class-swapping process for Virginia Tech students. Users create swap listings on our website, specifying the class they have and the class they want. These listings are posted to our backend system. When another user creates a swap that matches the attributes of an existing listing, both users receive an email notification to their Hokie inboxes, informing them that a swap is ready to be completed. By logging into HokieSWAP and supplying their authentication cookies, both users authorize the platform to automatically execute the swap. Our system securely handles the dropping and adding of courses for both parties simultaneously, eliminating the risk of one-sided drops and making the process hassle-free.

How We Built It

We began by delving into the Hokie Spa portal's add/drop functionality, searching for exposed API routes that could facilitate automatic retrieval and modification of course enrollments. After extensive exploration and reverse-engineering, we developed custom wrapper functions capable of performing GET and POST requests to manage course registrations automatically, requiring only the user's authentication cookies.

Tech Stack

  • Backend: Python Flask (REST API)
  • Python Sanic (WebSockets)
  • MongoDB, MongoEngine
  • Docker
  • Frontend: TypeScript React, Material UI (theming and styling), Framer Motion (animations), React Router DOM, Vite
  • Others: CORS, Swagger UI, Cloudflare Tunnels

Challenges We Faced

Developing HokieSWAP was not without its challenges. Reverse-engineering the Hokie Spa backend API required meticulous effort to fine-tune the API routes for our custom wrapper functions. Testing these functions with user cookies demanded careful handling to ensure security and functionality. Collaborating as a team of four on a complex project necessitated effective communication and task delegation. Additionally, setting up cloud tunnels to run the demo on our local machines involved overcoming networking hurdles.

Accomplishments That We're Proud Of

  • Automating the Swapping Functionality: Successfully automating a process that was previously manual and risky.
  • Clean and User-Friendly UI: Developing an intuitive interface that enhances user experience.
  • Teamwork: Collaborating effectively as a team, leveraging each member's strengths to build a robust application.

What We Learned

  • Ian: Gained experience with React components and contributed to frontend development. Also learned to use Cloudflare's tunnel service for secure, remote access.
  • Imran: Enhanced skills in utilizing generative text transformer models to aid in development.
  • Farhad: Learned how to reverse-engineer API requests using tools like Postman and Python's requests library.
  • Soos: Acquired knowledge in setting up Swagger UI for API documentation and testing.

Benefits to the Community

HokieSWAP has the potential to significantly benefit the Virginia Tech community by providing an inclusive platform that ensures all students, regardless of their social connections or familiarity with informal networks, have equal opportunities to adjust their schedules. By automating and securing the class-swapping process, we eliminate barriers that may have previously prevented some students from accessing preferred class times, thereby promoting a more equitable and inclusive academic environment.

What's Next for HokieSWAP

We envision HokieSWAP becoming an integral tool for students at Virginia Tech and potentially other universities facing similar challenges. Our next steps include seeking initial seed funding and exploring opportunities with accelerators like Y Combinator to expand our platform's reach and capabilities :)))

By developing HokieSWAP, we've addressed a real need with a creative and technically robust solution that stands to benefit a wide range of students, promoting both efficiency and equity in the class registration process.

Share this project:

Updates