A comprehensive health and wellness platform focused on longevity and preventive care, helping users track biomarkers, analyze health trends, and receive personalized recommendations for optimal healthspan.
- Setup Guide - Get started with development environment setup
- Architecture - System design and technical specifications
- Contributing - How to contribute to the project
- Code of Conduct - Community guidelines and standards
- Memory Bank - Project knowledge base and decisions
A comprehensive health and wellness platform focused on longevity and preventive care, helping users track biomarkers, analyze health trends, and receive personalized recommendations for optimal healthspan.
- Biomarker Tracking: Monitor key health indicators over time
- Trend Analysis: Visualize health data with interactive charts
- Reference Ranges: Compare results against optimal health ranges
- Risk Assessment: Identify potential health risks early
- Custom Recommendations: Tailored health and lifestyle suggestions
- Goal Setting: Define and track health objectives
- Actionable Insights: Data-driven guidance for improvement
- Progress Tracking: Monitor improvements over time
- Lab Result Import: Connect with major laboratories
- Wearable Sync: Import data from health devices
- FHIR Support: Standardized health data exchange
- Secure Storage: HIPAA-compliant data management
- Responsive Design: Works on all devices
- Dark/Light Mode: Choose your preferred theme
- Data Export: Download your health records
- Reminders: Never miss a health check-up
- Node.js 18.0.0 or later
- npm 9.0.0 or later
- 1Password CLI (for secret management)
- Docker (for local development)
- Windsurf IDE (recommended)
-
Clone the repository
git clone https://github.com/longevitycoach/longevitycoach.git cd longevitycoach
-
Set up your development environment
- Follow the Setup Guide for detailed instructions
- Recommended: Use Windsurf IDE for the best development experience
-
Install dependencies
npm install cd frontend npm install cd ..
-
Configure environment
# Set up 1Password CLI eval $(op signin) op run --env-file=.env.example --no-masking -- npm run dev
-
Start the development server
# From the project root npm run dev
The application will be available at http://localhost:3000
-
Run tests
# Run all tests npm test # Run specific test files npm test -- path/to/test/file.test.ts
longevitycoach/
├── .github/ # GitHub workflows and templates
│ └── workflows/ # CI/CD workflows
│ └── ISSUE_TEMPLATE/ # Issue templates
│ └── PULL_REQUEST_TEMPLATE.md
├── .windsurf/ # Windsurf IDE configuration
├── docs/ # Documentation files
│ ├── setup-guide.md
│ └── onboarding.md
├── frontend/ # Frontend application
│ ├── public/ # Static files
│ ├── src/ # Source code
│ │ ├── app/ # Next.js app router
│ │ ├── components/# Reusable UI components
│ │ ├── lib/ # Utility functions
│ │ └── styles/ # Global styles
│ └── tests/ # Test files
├── memory-bank/ # Project knowledge base
│ ├── architecture/ # System design docs
│ ├── decisions/ # ADRs
│ ├── planning/ # Project planning
│ └── README.md
├── .editorconfig # Editor configuration
├── .eslintrc.json # ESLint configuration
├── .gitignore # Git ignore rules
├── .prettierrc # Prettier config
├── CONTRIBUTING.md # Contribution guidelines
├── CODE_OF_CONDUCT.md # Community standards
└── package.json # Project dependencies
- Prettier for consistent code formatting
- ESLint for code quality and best practices
- TypeScript for type safety
- Conventional Commits for commit messages
-
Before starting work
- Check the Memory Bank for relevant decisions and context
- Review open issues and discussions
- Create a new branch following our naming convention:
feature/description-of-feature bugfix/description-of-fix docs/description-of-changes
-
Making changes
- Write clear, focused commits
- Include tests for new functionality
- Update documentation as needed
- Follow our Contribution Guidelines
-
Submitting changes
- Push your branch to the remote repository
- Open a Pull Request with a clear description
- Reference any related issues
- Request reviews from relevant team members
We use a comprehensive testing strategy including:
- Unit tests for individual components and functions
- Integration tests for API endpoints
- End-to-end tests for critical user flows
- Performance benchmarks for key operations
Run tests with:
# Run all tests
npm test
# Run tests in watch mode
npm test -- --watch
# Generate coverage report
npm run test:coverage
The Memory Bank is our central knowledge repository containing:
All significant decisions and architectural changes should be documented here.
git checkout -b feature/your-feature-name
- Make your changes and commit them with a descriptive message
- Push your branch and open a pull request
- Unit tests:
npm test
We welcome contributions from the community! Here's how you can help:
- Report bugs - Open an issue with detailed reproduction steps
- Suggest enhancements - Propose new features or improvements
- Submit code - Send a pull request following our Contribution Guidelines
- Improve documentation - Help make our docs better
- Answer questions - Help others in our community
New to open source? Check out our Good First Issues to get started.
- Create a pull request with a clear description of changes
- Ensure all tests pass and code coverage remains high
- Request reviews from relevant team members
- Address all review feedback
- Once approved, a maintainer will merge your changes
For more details, see our Contribution Guidelines and Code of Conduct.
This project is licensed under the MIT License - see the LICENSE file for details.
For support or questions, please open an issue or contact us at support@longevitycoach.app
- Active Development: Currently in initial development phase (Sprint 1)
- Core Infrastructure: In progress
- CI/CD Pipeline: Under development
- Documentation: Being established
Category | Status |
---|---|
Sprint Progress | Sprint 1 in progress |
Open Issues | 11 |
Closed Issues | 0 |
Test Coverage | TBD |
Latest Release | Pre-release |
- Project Structure: Initialized with Next.js and TypeScript
- Memory Bank: Basic implementation in progress
- Documentation: Initial setup complete
- CI/CD: Pipeline configuration started
- Complete Memory Bank system implementation
- Set up automated testing
- Implement initial static pages
- Configure CI/CD pipeline
- Enhance documentation
- Node.js 18.0.0 or later
- npm 9.0.0 or later
- Git
- 1Password CLI (for secrets management)
This project uses GitHub's version control system as the primary backup mechanism. Here's what you need to know:
-
No Local Backups:
.bak
files are excluded from version control (see .gitignore). -
File Recovery: Use Git's history to recover previous versions of files:
# View file history git log -- path/to/file # Restore a specific version git checkout <commit-hash> -- path/to/file
-
Documentation: For details on the backup strategy, see DEC-011: Data Encryption and Backup Strategy.
-
Clone the repository
git clone https://github.com/your-username/longevitycoach.git cd longevitycoach
-
Install dependencies
# Install root dependencies (Husky, lint-staged) npm install # Install frontend dependencies cd frontend npm install cd ..
-
Set up environment variables
# Copy the example environment file cp .env.local.example .env.local # Update the environment variables in .env.local as needed
-
Start the development server
# From the project root npm run dev
The application will be available at http://localhost:3000
From the project root:
npm run dev
- Start the development servernpm run build
- Build the application for productionnpm start
- Start the production servernpm run lint
- Run ESLintnpm run format
- Format code with Prettier
From the frontend directory:
npm run lint
- Run ESLintnpm run lint:fix
- Fix ESLint issuesnpm run format
- Format code with Prettier
- ESLint: Code linting with TypeScript and React plugins
- Prettier: Code formatting
- Husky: Git hooks for pre-commit checks
- lint-staged: Run linters on git staged files
Pre-commit hooks are set up to:
- Run ESLint on staged files
- Format code with Prettier
The application supports the latest versions of:
- Chrome
- Firefox
- Safari
- Edge
.
├── frontend/ # Frontend Next.js application
│ ├── src/ # Source files
│ │ ├── app/ # App router pages
│ │ ├── components/ # Reusable components
│ │ ├── features/ # Feature modules
│ │ ├── lib/ # Utility functions
│ │ └── styles/ # Global styles
│ ├── public/ # Static files
│ └── ...
├── scripts/ # Utility scripts
└── memory-bank/ # Project documentation and planning
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- GitHub CLI
-
Clone the repository:
git clone https://github.com/ma3u/longevitycoach.git cd longevitycoach
-
Install dependencies:
npm install
-
Set up environment:
cp .env.example .env.local # The .env.local file contains 1Password references that will be resolved at runtime
-
Sign in to 1Password (run this in your terminal):
eval $(op signin) # This will open a browser window for authentication
-
Start the development server:
# Run with 1Password environment variables op run --env-file=.env.local \ --no-masking -- \ npm run dev
This project uses GitHub as a memory bank for tracking decisions, progress, and system patterns. See the memory-bank
directory for more information.
We use 1Password for secure secret management with biometric authentication support. All sensitive credentials are stored in 1Password and referenced in .env.local
.
-
Install 1Password Desktop App (version 8.10.0 or later)
-
Install 1Password CLI:
# macOS brew install --cask 1password/tap/1password-cli
-
Enable Developer Settings:
- Open 1Password desktop app
- Go to Settings > Developer
- Enable both options:
- ☑️ Connect with 1Password CLI
- ☑️ Enable SSH Agent
-
Configure Shell:
Add these lines to your
~/.zshrc
or~/.bash_profile
:# 1Password SSH Agent export SSH_AUTH_SOCK=~/Library/Group\ Containers/2BUA8C4S2C.com.1password/t/agent.sock export OP_BIOMETRIC_UNLOCK_ENABLED=true # 1Password signin alias alias opsignin='eval $(op signin)'
-
Apply Changes:
# For zsh source ~/.zshrc # OR for bash # source ~/.bash_profile
-
Sign in (using Touch ID):
opsignin
-
Run with secrets:
op run --env-file=.env.local \ --no-masking -- \ npm run dev
- 🔒 Never commit
.env
files - 🔑 Use 1Password references in configuration
- 🔄 Rotate secrets every 90 days
- 🔐 Use biometric authentication for CLI access
For detailed information, see Secrets Management Documentation.
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support, please open an issue in the GitHub repository.
Active development in progress. See the project board for current status.