Roadmap - Adrianhammer/Availably GitHub Wiki
Availably Roadmap πΊοΈ
This roadmap outlines the major milestones, features, and priorities for Availably. Timelines are flexibleβadjust based on your teamβs pace.
Phase 0: Project Setup (1β2 weeks) βοΈ
Goals
β’ Establish repo structure, CI, docs, and local dev environment
β’ Validate end-to-end SignalR + EF Core βsmoke testβ
Deliverables
- β
GitHub repo with
.github/
workflows and templates - π
docs/architecture.md
,docs/github_workflow.md
,docs/roadmap.md
- π³ Docker Compose for API + PostgreSQL
- π Simple console/HTTP client that:
- Connects to SignalR hub
- Runs EF Core migrations
Phase 1: Core Backend & Data Model (2β3 weeks) π οΈ
Goals
β’ Define and implement domain model, persistence, and core use cases
Features
- π¦ Entities & relationships: Session, Participant, Availability
- ποΈ EF Core code-first migrations and PostgreSQL schema
- π― Application services / use-case layer
CreateSession(name) β sessionId
GenerateParticipantLink(sessionId) β token
RegisterParticipant(token) β participantId
- π REST API for above use cases
- β οΈ Basic input validation and error handling
Phase 2: Real-Time Availability Flow (2β3 weeks) π
Goals
β’ Enable clients to mark availability in real time
Features
- π SignalR hub:
JoinSession(sessionId)
ToggleAvailability(sessionId, participantId, date, isFree)
- Broadcast
AvailabilityUpdated
event to group
- πΎ Persistence of each toggle in DB
- π Service layer to aggregate βeveryoneβs free datesβ on the fly
- π§ͺ Unit tests for hub logic and aggregation service
- π οΈ Manual validation via Postman or simple React-free client
Phase 3: Minimal Front-End (3β4 weeks) π¨
Goals
β’ Ship a basic Next.js/React UI for session interaction
Features
- π Session creation page (host)
- π βJoin by linkβ page (participant)
- π Interactive calendar grid: click to mark busy/free
- π SignalR client integration:
- Join session group
- Send toggle requests
- Listen for
AvailabilityUpdated
and update UI
- π― Display collective βall-freeβ dates highlight
- π± Responsive and accessible layout (mobile first)
Phase 4: Host Controls & Polishing (3β4 weeks) ποΈ
Goals
β’ Equip hosts with management tools and improve UX
Features
- π Host dashboard:
- List active sessions
- View participants & their availability
- Close or delete a session
- βοΈ Session-level settings (e.g. date range limits)
- β¨ UI/UX refinements (animations, color scheme, Tailwind CSS)
- π§ͺ Basic unit/integration tests for front-end components
- π€ End-to-end smoke test (UI β API)
Phase 5: Hardening, CI/CD & Release (2β3 weeks) π¦
Goals
β’ Production-ready deployment, monitoring, and quality gates
Features
- π€ GitHub Actions:
- Build, lint, test on every PR
- Deploy to Azure staging on merge to
main
- π Logging & monitoring:
- Serilog + Azure Application Insights
- Health check endpoints (
/healthz
)
- π Docker image optimizations (distroless, multi-stage)
- π Draft v1.0.0 release notes & version tag
Phase 6: v1.1+ Extensions (Ongoing / V2) β¨
Goals
β’ Add power-user features and deeper integrations
Candidate Features
- π Recurring availability patterns (βevery Monday,β βweekendsβ)
- π Calendar integrations (Google Calendar, Outlook API)
- π Authentication & user accounts (email link, OAuth)
- π Time-zone handling for distributed teams
- βΏ Accessibility audits (WCAG 2.1 AA)
- π Advanced filtering (date ranges, participant subsets)
Ongoing Practices π
- ποΈ Weekly planning & retrospectives
- π Maintain prioritized backlog in GitHub Issues
- π Keep documentation (
docs/
) and Wiki in sync - π£οΈ Update roadmap every phase completion