Milestones - tonybolanyo/chordme GitHub Wiki
Milestone 1: Minimum Viable Product (MVP)
1. Project Setup
- [BE] Initialize backend project structure (Node.js/Express or Django/Flask)
- [FE] Initialize frontend project with chosen framework (React/Vue/Angular)
- [FE] Set up basic routing and page layout
- [FE/BE] Set up GitHub Actions for CI/CD (optional)
2. User Authentication
- [BE] Implement user registration endpoint (email/password)
- [BE] Implement user login endpoint with JWT
- [BE] Secure password storage with bcrypt/Argon2
- [FE] Create registration and login forms
- [FE] Implement authentication state management
- [FE/BE] Protect routes and endpoints for authenticated users
3. Song CRUD Operations
- [BE] Design and implement Song model/schema (title, author, content, timestamps)
- [BE] Implement CRUD endpoints for songs (create, read, update, delete)
- [BE] Enforce user ownership and permissions on song endpoints
- [FE] Create song list view (display user’s songs)
- [FE] Create song editor view (basic text input)
- [FE] Implement create, edit, and delete song actions
- [FE] Display song details and allow basic editing
4. ChordPro Format Support
- [BE] Implement backend support for storing and retrieving ChordPro-formatted song content
- [FE] Implement ChordPro syntax highlighting in the editor
- [FE] Parse and render ChordPro content in song viewer
5. Local File Upload/Download
- [FE] Implement file upload for ChordPro files (.cho, .chopro, .crd)
- [FE] Implement download/export of songs in ChordPro format
- [BE] Support file upload/download endpoints if needed
6. Basic Security
- [BE] Enforce HTTPS (development and production)
- [BE] Validate and sanitize all user inputs
- [BE] Implement basic rate limiting on authentication endpoints
- [FE] Handle and display backend errors gracefully
Milestone 2: Chord Editing and Enhanced Features
1. Chord Management
- [FE] Create chord palette/sidebar with built-in chords
- [FE] Implement drag-and-drop of chords onto lyrics
- [FE] Allow direct chord entry in editor
- [BE] Optionally, store user-defined chords
2. Song Sections and Advanced ChordPro
- [FE] Support ChordPro directives for sections (verse, chorus, bridge)
- [FE] Visual separation of song sections in editor and viewer
- [BE] Parse and store section data
3. Chord Transposition
- [FE] Implement chord transposition controls in the editor
- [BE] Provide utility functions for chord transposition
Milestone 3: Cloud Storage Integrations
1. Google Drive Integration
- [FE] Integrate Google OAuth2 for Drive access
- [FE] Implement import/export of ChordPro files to/from Google Drive
- [BE] Support Google Drive file operations if needed
2. Firebase & Firestore Integration
- [FE] Integrate Firebase SDK and Firestore
- [FE] Implement user authentication with Firebase Auth
- [FE] Store and retrieve songs from Firestore
- [FE] Implement real-time sync for song editing
- [FE] Update UI to allow user to select preferred storage backend
- [FE] Implement Firestore security rules and test access control
Milestone 4: Collaboration and Sharing
- [BE] Implement sharing model for songs (sharedWith, permissions)
- [BE] Update endpoints to support collaborative editing
- [FE] UI for sharing songs with other users (read/edit permissions)
- [FE] Display shared songs in user’s dashboard
- [FE] Real-time collaborative editing (if using Firestore)
Milestone 5: Advanced Features & Polish
- [FE] Implement version history and undo/redo in song editor
- [FE/BE] Add PDF export of songs
- [FE] Responsive/mobile-first design improvements
- [FE] Accessibility improvements (ARIA, keyboard navigation)
- [BE] Logging and monitoring for security events
- [FE/BE] Comprehensive error handling and user feedback
Milestone 6: Production Readiness
- [FE/BE] Write and run unit and integration tests
- [FE/BE] Prepare deployment scripts and documentation
- [FE/BE] Final security audit and penetration testing
- [FE/BE] Update README and Wiki with user and developer guides