Inspiration

We realized that while many students want to participate in ACSL (American Computer Science League), it’s not easy for them to register, join the right team, and find preparation resources. Teachers often manage these processes manually, and students don’t have a central hub for everything. Our goal was to streamline ACSL participation so students can focus on learning and competing.

What it does

ACSL Online Club provides:

  • Competition registration: Students can easily register for upcoming ACSL contests by division.
  • Team management: Teams are automatically organized so that only students in the same division are grouped together, with a max of 10 per team.
  • Resource center: A built-in area where students can access study materials, past problems, and practice links.
  • Status tracking: Each student sees their contest registration status ("Registered for Elementary Contest", "Not Registered", etc.).
  • Admin tools: Organizers can view teams by division, confirm registrations, and prevent invalid team setups.

How we built it

  • Node.js (Express) backend for routes, sessions, and contest logic.
  • File-based JSON storage for users and teams.
  • Frontend: Lightweight HTML/CSS/JS pages for registration, login, and dashboard.
  • Session management to keep users logged in securely.
  • Dockerized so it can be deployed anywhere easily.

Challenges we ran into

  • Designing the logic so students can’t end up in teams across multiple divisions.
  • Keeping the app lightweight but still secure with email confirmation and password reset.
  • Structuring the UI to be intuitive for both students (simple dashboard) and admins (team/contest overview).
  • Balancing "hackathon speed" with "real usability."

Accomplishments that we're proud of

  • Students can register for contests and instantly see their status update.
  • Teams are auto-managed by division rules, reducing errors for organizers.
  • We added a resources section so the app is not just about logistics but also about learning.
  • Created a single hub for ACSL that’s useful before, during, and after competitions.

What we learned

  • How to model contest-specific rules (like divisions and team caps) in code.
  • The importance of designing features for the end-user experience rather than just backend logic.
  • That students and organizers both need different but connected dashboards.
  • How to build something small but extendable for real-world use.

What's next for Online ACSL Club

  • Expand the Resource Center with videos, tutorials, and practice contests.
  • Add a leaderboard to track contest results across teams and divisions.
  • Allow mentors/teachers to manage groups of students directly.
  • Eventually migrate to a full database for scalability.

Built With

Share this project:

Updates