Initial commit: Complete NodeJS-native setup

- Migrated from Python pre-commit to NodeJS-native solution
- Reorganized documentation structure
- Set up Husky + lint-staged for efficient pre-commit hooks
- Fixed Dockerfile healthcheck issue
- Added comprehensive documentation index
This commit is contained in:
William Valentin
2025-09-06 01:42:48 -07:00
commit e48adbcb00
159 changed files with 24405 additions and 0 deletions

90
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,90 @@
# Bug Report
## 🐛 Bug Description
A clear and concise description of the bug.
## 🔄 Steps to Reproduce
1. Go to '...'
2. Click on '...'
3. Scroll down to '...'
4. See error
## ✅ Expected Behavior
A clear and concise description of what you expected to happen.
## ❌ Actual Behavior
A clear and concise description of what actually happened.
## 📱 Environment
**Desktop:**
- OS: [e.g. Windows 10, macOS 12.0, Ubuntu 20.04]
- Browser: [e.g. Chrome 96, Firefox 95, Safari 15]
- Version: [e.g. 22]
**Mobile:**
- Device: [e.g. iPhone 13, Samsung Galaxy S21]
- OS: [e.g. iOS 15.1, Android 12]
- Browser: [e.g. Safari, Chrome]
**Application:**
- Version: [e.g. 1.2.0]
- Environment: [e.g. Local Development, Production]
- Authentication Method: [e.g. Email/Password, Google OAuth]
## 📸 Screenshots
If applicable, add screenshots to help explain your problem.
## 📝 Additional Context
Add any other context about the problem here.
### Error Messages
```
Paste any error messages here
```
### Console Logs
```
Paste relevant console logs here
```
### Network Requests
If the issue involves API calls, include relevant network request/response information.
## 🔧 Troubleshooting Attempted
- [ ] Cleared browser cache
- [ ] Tried incognito/private browsing
- [ ] Checked browser console for errors
- [ ] Verified internet connection
- [ ] Tried different browser
- [ ] Logged out and back in
## 🏥 Medical Context (if applicable)
- [ ] This affects medication reminders
- [ ] This affects dose tracking
- [ ] This could impact patient safety
- [ ] This involves sensitive health data
**Priority Level:** [Low / Medium / High / Critical]
## 📋 Checklist
- [ ] I have searched existing issues to ensure this is not a duplicate
- [ ] I have provided clear steps to reproduce
- [ ] I have included environment details
- [ ] I have added relevant screenshots/logs
- [ ] I have marked appropriate priority level

194
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@@ -0,0 +1,194 @@
name: 🐛 Bug Report
description: Report a bug or issue with the application
title: '[BUG] '
labels: ['bug', 'needs-triage']
assignees: []
body:
- type: markdown
attributes:
value: |
Thank you for taking the time to report a bug! Please fill out the information below to help us reproduce and fix the issue quickly.
- type: checkboxes
id: pre-check
attributes:
label: Pre-submission Checklist
description: Please verify these items before submitting
options:
- label: I have searched existing issues to ensure this is not a duplicate
required: true
- label: I have provided clear steps to reproduce the issue
required: true
- label: I have tested this in the latest version
required: true
- type: textarea
id: description
attributes:
label: Bug Description
description: A clear and concise description of what the bug is
placeholder: Describe the bug...
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Steps to Reproduce
description: Clear steps to reproduce the behavior
placeholder: |
1. Go to '...'
2. Click on '...'
3. Scroll down to '...'
4. See error
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected Behavior
description: What you expected to happen
placeholder: I expected...
validations:
required: true
- type: textarea
id: actual
attributes:
label: Actual Behavior
description: What actually happened
placeholder: Instead...
validations:
required: true
- type: dropdown
id: severity
attributes:
label: Severity
description: How severe is this issue?
options:
- Low - Minor inconvenience
- Medium - Noticeable issue that doesn't block usage
- High - Significant issue that impacts functionality
- Critical - Application is unusable or data loss
validations:
required: true
- type: dropdown
id: environment
attributes:
label: Environment
description: Where did this occur?
options:
- Local Development
- Docker Environment
- Production
- Staging
validations:
required: true
- type: input
id: os
attributes:
label: Operating System
description: Your operating system
placeholder: e.g., Windows 11, macOS 13.0, Ubuntu 22.04
validations:
required: true
- type: input
id: browser
attributes:
label: Browser
description: Browser and version
placeholder: e.g., Chrome 119, Firefox 118, Safari 17
validations:
required: true
- type: input
id: version
attributes:
label: Application Version
description: Version of the application
placeholder: e.g., 1.2.0
validations:
required: false
- type: dropdown
id: auth-method
attributes:
label: Authentication Method
description: How were you authenticated when this occurred?
options:
- Not authenticated
- Email/Password
- Google OAuth
- GitHub OAuth
- Admin Account
validations:
required: false
- type: textarea
id: error-messages
attributes:
label: Error Messages
description: Any error messages you received
placeholder: Paste error messages here...
render: text
validations:
required: false
- type: textarea
id: console-logs
attributes:
label: Console Logs
description: Relevant browser console logs
placeholder: Paste console logs here...
render: text
validations:
required: false
- type: textarea
id: screenshots
attributes:
label: Screenshots
description: Add screenshots to help explain the problem
placeholder: Drag and drop screenshots here...
validations:
required: false
- type: checkboxes
id: troubleshooting
attributes:
label: Troubleshooting Attempted
description: What troubleshooting steps have you tried?
options:
- label: Cleared browser cache
- label: Tried incognito/private browsing
- label: Checked browser console for errors
- label: Verified internet connection
- label: Tried different browser
- label: Logged out and back in
- label: Restarted the application
- type: checkboxes
id: medical-impact
attributes:
label: Medical Context
description: Does this issue affect medication management? (Check all that apply)
options:
- label: Affects medication reminders
- label: Affects dose tracking
- label: Could impact patient safety
- label: Involves sensitive health data
- type: textarea
id: additional-context
attributes:
label: Additional Context
description: Any other context about the problem
placeholder: Add any other context here...
validations:
required: false

120
.github/ISSUE_TEMPLATE/documentation.yml vendored Normal file
View File

@@ -0,0 +1,120 @@
name: 📚 Documentation Issue
description: Report problems with documentation or suggest improvements
title: '[DOCS] '
labels: ['documentation', 'needs-triage']
assignees: []
body:
- type: markdown
attributes:
value: |
Help us improve our documentation! Report issues or suggest enhancements to make it more helpful.
- type: dropdown
id: doc-type
attributes:
label: Documentation Type
description: What type of documentation needs attention?
options:
- README.md
- API Documentation
- Security Guide
- Deployment Guide
- Contributing Guide
- Code Comments
- User Guide
- Setup Instructions
- Other
validations:
required: true
- type: dropdown
id: issue-type
attributes:
label: Issue Type
description: What kind of documentation issue is this?
options:
- Missing information
- Incorrect information
- Unclear instructions
- Outdated content
- Broken links
- Formatting issues
- Spelling/grammar errors
- Enhancement suggestion
validations:
required: true
- type: textarea
id: description
attributes:
label: Description
description: Describe the documentation issue or improvement
placeholder: The documentation issue is...
validations:
required: true
- type: input
id: location
attributes:
label: Document Location
description: Which file or section needs attention?
placeholder: e.g., README.md line 45, docs/API.md section "Authentication"
validations:
required: true
- type: textarea
id: current-content
attributes:
label: Current Content (if applicable)
description: Quote the current text that needs to be changed
placeholder: Current text...
validations:
required: false
- type: textarea
id: suggested-content
attributes:
label: Suggested Content
description: Provide the corrected or improved content
placeholder: Suggested replacement...
validations:
required: false
- type: dropdown
id: audience
attributes:
label: Target Audience
description: Who is the primary audience for this documentation?
options:
- End users
- Developers
- System administrators
- Healthcare providers
- Contributors
- All audiences
validations:
required: true
- type: checkboxes
id: impact
attributes:
label: Impact
description: What areas does this documentation issue affect?
options:
- label: New user onboarding
- label: Development setup
- label: Deployment process
- label: Security configuration
- label: API usage
- label: Troubleshooting
- label: Contributing process
- type: textarea
id: additional-context
attributes:
label: Additional Context
description: Any other relevant information
placeholder: Additional context...
validations:
required: false

View File

@@ -0,0 +1,173 @@
# Feature Request
## 🚀 Feature Description
A clear and concise description of the feature you'd like to see implemented.
## 💡 Problem Statement
What problem does this feature solve? What user need does it address?
## 🎯 Proposed Solution
Describe your proposed solution in detail. How should this feature work?
## 🏥 Medical Use Case
Explain how this feature would improve medication management or patient outcomes.
## 📱 User Experience
Describe the user journey and interface for this feature.
### **User Interface Mockups**
If applicable, add mockups, wireframes, or descriptions of the UI.
### **User Flow**
1. User navigates to...
2. User clicks/taps...
3. System displays...
4. User completes...
## 🔧 Technical Considerations
### **Implementation Complexity**
- [ ] Simple (few hours)
- [ ] Medium (few days)
- [ ] Complex (few weeks)
- [ ] Major (significant architecture changes)
### **Affected Components**
- [ ] Frontend UI
- [ ] Authentication system
- [ ] Database schema
- [ ] Email notifications
- [ ] Mobile responsiveness
- [ ] API endpoints
- [ ] Third-party integrations
### **Dependencies**
List any external libraries, services, or system changes needed.
## 🎨 Design Requirements
### **Visual Design**
- [ ] Follows existing design system
- [ ] Requires new design patterns
- [ ] Needs accessibility considerations
- [ ] Mobile-first approach needed
### **Responsive Behavior**
Describe how this feature should work on different screen sizes.
## 📊 Success Metrics
How will we measure the success of this feature?
- [ ] User engagement metrics
- [ ] Medication adherence improvement
- [ ] User satisfaction scores
- [ ] Performance metrics
- [ ] Error rate reduction
## 🔒 Security & Privacy
### **Data Handling**
- [ ] Handles sensitive health data
- [ ] Requires data encryption
- [ ] Needs audit logging
- [ ] Affects user privacy
### **Compliance**
- [ ] GDPR considerations
- [ ] HIPAA considerations (if applicable)
- [ ] Data retention policies
- [ ] User consent requirements
## 🌍 Accessibility
- [ ] Screen reader compatible
- [ ] Keyboard navigation support
- [ ] Color contrast compliant
- [ ] Mobile accessibility
- [ ] Language localization needed
## 🔄 Alternative Solutions
What other approaches have you considered? Why is this the preferred solution?
## 📚 Additional Context
### **Similar Features**
Are there similar features in other applications that work well?
### **User Research**
Any user feedback, surveys, or research supporting this feature?
### **Priority Justification**
Why should this feature be prioritized?
## 🎯 Acceptance Criteria
Define specific, testable criteria for when this feature is complete:
- [ ] Criterion 1
- [ ] Criterion 2
- [ ] Criterion 3
## 📋 Implementation Plan (Optional)
If you have ideas for implementation:
### **Phase 1: Foundation**
- [ ] Database changes
- [ ] API endpoints
- [ ] Basic UI components
### **Phase 2: Core Feature**
- [ ] Main functionality
- [ ] User interface
- [ ] Basic testing
### **Phase 3: Polish**
- [ ] Advanced features
- [ ] Performance optimization
- [ ] Comprehensive testing
## 🏷️ Labels
Please suggest appropriate labels:
- [ ] enhancement
- [ ] ui/ux
- [ ] backend
- [ ] frontend
- [ ] security
- [ ] accessibility
- [ ] documentation
- [ ] high-priority
- [ ] good-first-issue
## 📋 Checklist
- [ ] I have searched existing issues to ensure this is not a duplicate
- [ ] I have clearly described the problem and solution
- [ ] I have considered the user experience impact
- [ ] I have thought about technical implementation
- [ ] I have considered security and privacy implications
- [ ] I have defined success criteria

View File

@@ -0,0 +1,218 @@
name: ✨ Feature Request
description: Suggest a new feature or enhancement
title: '[FEATURE] '
labels: ['enhancement', 'needs-triage']
assignees: []
body:
- type: markdown
attributes:
value: |
Thank you for suggesting a new feature! Please provide detailed information to help us understand and evaluate your request.
- type: checkboxes
id: pre-check
attributes:
label: Pre-submission Checklist
description: Please verify these items before submitting
options:
- label: I have searched existing issues to ensure this is not a duplicate
required: true
- label: I have clearly described the problem and solution
required: true
- label: I have considered the user experience impact
required: true
- type: textarea
id: feature-description
attributes:
label: Feature Description
description: A clear and concise description of the feature you'd like to see
placeholder: Describe the feature...
validations:
required: true
- type: textarea
id: problem-statement
attributes:
label: Problem Statement
description: What problem does this feature solve? What user need does it address?
placeholder: This feature would solve...
validations:
required: true
- type: textarea
id: proposed-solution
attributes:
label: Proposed Solution
description: Describe your proposed solution in detail
placeholder: The feature should work by...
validations:
required: true
- type: textarea
id: medical-use-case
attributes:
label: Medical Use Case
description: How would this improve medication management or patient outcomes?
placeholder: This would help patients by...
validations:
required: true
- type: dropdown
id: user-type
attributes:
label: Primary User Type
description: Who would primarily benefit from this feature?
options:
- Patients managing their own medications
- Caregivers managing medications for others
- Healthcare providers
- System administrators
- All users
validations:
required: true
- type: dropdown
id: priority
attributes:
label: Priority Level
description: How important is this feature?
options:
- Low - Nice to have enhancement
- Medium - Would improve user experience
- High - Important for better outcomes
- Critical - Essential for core functionality
validations:
required: true
- type: dropdown
id: complexity
attributes:
label: Implementation Complexity
description: How complex do you think this feature would be to implement?
options:
- Simple (few hours)
- Medium (few days)
- Complex (few weeks)
- Major (significant architecture changes)
- Unknown
validations:
required: false
- type: checkboxes
id: affected-components
attributes:
label: Affected Components
description: Which parts of the system would this feature affect?
options:
- label: Frontend UI
- label: Authentication system
- label: Database schema
- label: Email notifications
- label: Mobile responsiveness
- label: API endpoints
- label: Third-party integrations
- label: Admin interface
- type: textarea
id: user-flow
attributes:
label: User Experience Flow
description: Describe the user journey for this feature
placeholder: |
1. User navigates to...
2. User clicks/taps...
3. System displays...
4. User completes...
validations:
required: true
- type: textarea
id: success-metrics
attributes:
label: Success Metrics
description: How will we measure the success of this feature?
placeholder: |
- User engagement metrics
- Medication adherence improvement
- User satisfaction scores
validations:
required: false
- type: checkboxes
id: design-requirements
attributes:
label: Design Requirements
description: What design considerations are important?
options:
- label: Follows existing design system
- label: Requires new design patterns
- label: Needs accessibility considerations
- label: Mobile-first approach needed
- label: Dark/light theme support
- type: checkboxes
id: security-privacy
attributes:
label: Security & Privacy Considerations
description: Does this feature involve sensitive data or security concerns?
options:
- label: Handles sensitive health data
- label: Requires data encryption
- label: Needs audit logging
- label: Affects user privacy
- label: Requires user consent
- label: GDPR compliance needed
- label: HIPAA considerations
- type: checkboxes
id: accessibility
attributes:
label: Accessibility Requirements
description: What accessibility features are needed?
options:
- label: Screen reader compatible
- label: Keyboard navigation support
- label: Color contrast compliant
- label: Mobile accessibility
- label: Language localization needed
- type: textarea
id: alternatives
attributes:
label: Alternative Solutions
description: What other approaches have you considered?
placeholder: I also considered...
validations:
required: false
- type: textarea
id: acceptance-criteria
attributes:
label: Acceptance Criteria
description: Define specific, testable criteria for when this feature is complete
placeholder: |
- [ ] Criterion 1
- [ ] Criterion 2
- [ ] Criterion 3
validations:
required: true
- type: textarea
id: additional-context
attributes:
label: Additional Context
description: Any other context, mockups, or references
placeholder: Additional information...
validations:
required: false
- type: textarea
id: similar-features
attributes:
label: Similar Features
description: Are there similar features in other applications that work well?
placeholder: Similar implementations I've seen...
validations:
required: false

179
.github/pull_request_template.md vendored Normal file
View File

@@ -0,0 +1,179 @@
# Pull Request
## 📝 Description
Brief description of changes made in this pull request.
## 🔗 Related Issues
Fixes #(issue_number)
Closes #(issue_number)
Related to #(issue_number)
## 🎯 Type of Change
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] 📚 Documentation update
- [ ] 🔧 Code refactoring (no functional changes)
- [ ] ⚡ Performance improvement
- [ ] 🧪 Test coverage improvement
- [ ] 🔒 Security enhancement
- [ ] 🎨 UI/UX improvement
## 🧪 Testing
Describe the tests you ran to verify your changes.
### **Test Environment**
- [ ] Local development
- [ ] Docker environment
- [ ] Production-like environment
### **Test Cases**
- [ ] Unit tests pass
- [ ] Integration tests pass
- [ ] Manual testing completed
- [ ] Cross-browser testing (if UI changes)
- [ ] Mobile testing (if responsive changes)
- [ ] Accessibility testing (if UI changes)
### **New Tests Added**
- [ ] Unit tests for new functionality
- [ ] Integration tests for API changes
- [ ] End-to-end tests for user flows
## 📱 Screenshots (if applicable)
Include screenshots for UI changes.
### **Before**
[Add screenshot of current state]
### **After**
[Add screenshot of new state]
### **Mobile View**
[Add mobile screenshots if applicable]
## 🔒 Security Considerations
- [ ] No sensitive data exposed in logs
- [ ] Authentication/authorization properly implemented
- [ ] Input validation in place
- [ ] SQL injection prevention (if applicable)
- [ ] XSS prevention (if applicable)
- [ ] CSRF protection maintained
## 📊 Performance Impact
- [ ] No performance degradation
- [ ] Performance improvements measured
- [ ] Database queries optimized
- [ ] Bundle size impact acceptable
- [ ] Memory usage acceptable
## 🔄 Breaking Changes
If this is a breaking change, describe:
1. What breaks
2. Migration path for users
3. Version bump requirements
## 📚 Documentation
- [ ] Code is self-documenting with clear naming
- [ ] Complex logic has comments
- [ ] API documentation updated (if applicable)
- [ ] README updated (if applicable)
- [ ] User documentation updated (if applicable)
## 📋 Checklist
### **Code Quality**
- [ ] Code follows project style guidelines
- [ ] Self-review of code completed
- [ ] Code is commented where necessary
- [ ] No console.log statements left in code
- [ ] Error handling implemented properly
### **Testing & Validation**
- [ ] All tests pass locally
- [ ] TypeScript compilation succeeds
- [ ] ESLint passes without errors
- [ ] Build succeeds without warnings
- [ ] Manual testing completed
### **Review Preparation**
- [ ] Pull request title is descriptive
- [ ] Pull request description is complete
- [ ] Commits are atomic and well-described
- [ ] No merge conflicts
- [ ] Base branch is correct
### **Deployment Readiness**
- [ ] Environment variables documented (if new)
- [ ] Database migrations included (if needed)
- [ ] Docker configuration updated (if needed)
- [ ] Deployment scripts updated (if needed)
## 🎯 Review Focus Areas
Please pay special attention to:
- [ ] Security implications
- [ ] Performance impact
- [ ] Error handling
- [ ] User experience
- [ ] Code maintainability
- [ ] Test coverage
## 📝 Additional Notes
Any additional information for reviewers:
### **Design Decisions**
Explain any significant design or architecture decisions made.
### **Trade-offs**
Describe any trade-offs made and why they were necessary.
### **Future Work**
List any follow-up work that should be done in future PRs.
## 🚀 Deployment Notes
Special considerations for deployment:
- [ ] Requires environment variable changes
- [ ] Requires database migration
- [ ] Requires cache clearing
- [ ] Requires dependency updates
- [ ] No special deployment requirements
---
**Reviewer Checklist:**
- [ ] Code review completed
- [ ] Tests reviewed and verified
- [ ] Documentation reviewed
- [ ] Security review completed (if applicable)
- [ ] Performance review completed (if applicable)
- [ ] Breaking changes noted and approved
- [ ] Deployment considerations reviewed

110
.github/workflows/build-deploy.yml vendored Normal file
View File

@@ -0,0 +1,110 @@
name: Build and Deploy
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to Container Registry
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=ref,event=branch
type=ref,event=pr
type=sha
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: ./docker
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
VITE_COUCHDB_URL=${{ vars.VITE_COUCHDB_URL || 'http://localhost:5984' }}
VITE_COUCHDB_USER=${{ vars.VITE_COUCHDB_USER || 'admin' }}
VITE_COUCHDB_PASSWORD=${{ secrets.VITE_COUCHDB_PASSWORD || 'change-this-secure-password' }}
APP_BASE_URL=${{ vars.APP_BASE_URL || 'http://localhost:8080' }}
VITE_GOOGLE_CLIENT_ID=${{ vars.VITE_GOOGLE_CLIENT_ID || '' }}
VITE_GITHUB_CLIENT_ID=${{ vars.VITE_GITHUB_CLIENT_ID || '' }}
NODE_ENV=production
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Build with Bake (Alternative)
if: false # Set to true to use bake instead
uses: docker/bake-action@v4
with:
workdir: ./docker
files: docker-bake.hcl
targets: prod
push: ${{ github.event_name != 'pull_request' }}
test:
runs-on: ubuntu-latest
needs: build
if: github.event_name == 'pull_request'
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Bun
uses: oven-sh/setup-bun@v1
with:
bun-version: latest
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Run linting
run: bun run lint
- name: Run type checking
run: bun run type-check
- name: Run tests
run: bun run test
deploy:
runs-on: ubuntu-latest
needs: [build, test]
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
environment: production
steps:
- name: Deploy to production
run: |
echo "Deploy to production server"
# Add your deployment commands here
# Example: SSH to server and pull the new image