Skip to content

Milestones

List view

  • Implement a `Cask` server application using `Scala-CLI` that validates identification numbers through multiple implementation approaches. ### Key Deliverables: 1. **Basic Server Setup** - [ ] Configure Cask application with Scala-CLI - [ ] Set custom port configuration - [ ] Implement basic POST endpoint `/validateID` 2. **Core Validation Implementations** - [ ] Standard Class Implementation - [ ] Basic ID class - [ ] Validation logic - [ ] Test cases - [ ] Value Class Implementation - [ ] ID value class definition - [ ] Basic validation - [ ] Test cases - [ ] Validated Class Implementation - [ ] Class with built-in validation - [ ] Validation rules - [ ] Test cases 3. **Advanced Type-safe Implementations** - [ ] Opaque Types Basic - [ ] Define opaque type for ID - [ ] Add validation methods - [ ] Test cases - [ ] Value Class with Error Handling - [ ] Either-based error handling - [ ] Custom error types - [ ] Test cases - [ ] Opaque Types with Error Handling - [ ] Error-aware opaque types - [ ] Custom error handling - [ ] Test cases 4. **Library Implementations** - [ ] NewType Integration - [ ] Setup NewType dependency - [ ] Implement ID validation - [ ] Test cases - [ ] Iron Integration - [ ] Setup Iron dependency - [ ] Implement ID validation - [ ] Test cases ### Technical Requirements: - Scala 3 - Cask web framework - Scala-CLI build tool - Appropriate error handling - Unit tests for each implementation - Documentation for each approach ### Acceptance Criteria: - Server runs on specified port - `/validateID` endpoint accepts POST requests - Each implementation correctly validates IDs - Proper error handling for invalid inputs - Comprehensive test coverage - Clear API documentation

    Overdue by 1 year(s)
    Due by April 30, 2025
    12/14 issues closed
  • Develop a user-friendly frontend interface using Tyrian (Scala.js) that communicates with the existing ID validation server. ### Key Deliverables: 1. **Input Component** - [ ] Create text input field for ID entry - [ ] Add submit button 2. **Server Communication** - [ ] Set up HTTP POST request to `/validateID` endpoint 3. **Response Display** - [ ] Success case: - [ ] Green box implementation - [ ] "Correct ID" message display - [ ] Styling for success state - [ ] Error case: - [ ] Red box implementation - [ ] "Incorrect ID" message display - [ ] Error message presentation - [ ] Styling for error state 4. **UI/UX Enhancements** - [ ] Implement responsive design - [ ] Add input field clearing after submission ### Acceptance Criteria: - Frontend successfully communicates with backend server - All success/error states correctly displayed - UI is responsive and user-friendly - Error messages are clear and actionable - Input validation works as expected ### Technical Requirements: - Tyrian/Scala.js implementation - Clean, maintainable code structure - Proper error handling - Responsive design - Cross-browser compatibility

    Overdue by 1 year(s)
    Due by April 4, 2025
    3/7 issues closed