This repository contains a Solidity smart contract for managing student registrations for a hackathon. The contract is designed to handle both in-person and online participants, collect necessary information, and provide various utility functions for efficient registration management.
- Student registration for hackathon (both in-person and online)
- Update existing registrations
- Configurable minimum age requirement (with absolute minimum safeguard)
- Tracking of in-person and online participants
- Handling of dietary restrictions and lodging needs
- Implementation of safeguards against common edge cases
- Capped total number of registrations
- Enums:
Skillset
,ParticipationType
,DietaryRestriction
- Struct:
StudentData
for comprehensive student information - Functions for registration, updates, and data retrieval
- Events for logging registration attempts and updates
registerOrUpdateStudent
: Register a new student or update existing registrationgetStudentByAddress
: Retrieve a student's data by their Ethereum addressisStudentRegistered
: Check if a student is registeredgetTotalRegisteredStudents
: Get the total count of registered studentsgetInPersonStudentsCount
: Get the count of in-person studentsgetOnlineStudentsCount
: Get the count of online students