mirror of
https://github.com/DocNR/POWR.git
synced 2025-04-23 01:01:27 +00:00
148 lines
2.8 KiB
Markdown
148 lines
2.8 KiB
Markdown
# POWR - Cross-Platform Fitness Tracking App
|
|
|
|
POWR is a local-first fitness tracking application built with React Native and Expo, featuring planned Nostr protocol integration for decentralized social features.
|
|
|
|
## Features
|
|
|
|
### Current
|
|
- Exercise library management
|
|
- Workout template creation
|
|
- Local-first data architecture
|
|
- Cross-platform support (iOS, Android)
|
|
- Dark mode support
|
|
|
|
### Planned
|
|
- Workout record and template sharing
|
|
- Nostr integration
|
|
- Social features
|
|
- Training programs
|
|
- Performance analytics
|
|
|
|
## Getting Started
|
|
|
|
### Prerequisites
|
|
- Node.js (v18 or later)
|
|
- npm or yarn
|
|
- Expo CLI
|
|
- iOS Simulator (for iOS development)
|
|
- Android Studio (for Android development)
|
|
|
|
### Installation
|
|
|
|
1. Clone the repository
|
|
```bash
|
|
git clone https://github.com/docNR/powr.git
|
|
cd powr
|
|
```
|
|
|
|
2. Install dependencies
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
3. Start the development server
|
|
```bash
|
|
npx expo start
|
|
```
|
|
|
|
### Development Options
|
|
- Press 'i' for iOS simulator
|
|
- Press 'a' for Android simulator
|
|
- Scan QR code with Expo Go app for physical device
|
|
|
|
## Project Structure
|
|
|
|
```plaintext
|
|
powr/
|
|
├── app/ # Main application code
|
|
│ ├── (tabs)/ # Tab-based navigation
|
|
│ └── components/ # Shared components
|
|
├── assets/ # Static assets
|
|
├── docs/ # Documentation
|
|
│ └── design/ # Design documents
|
|
├── lib/ # Shared utilities
|
|
└── types/ # TypeScript definitions
|
|
```
|
|
|
|
## Technology Stack
|
|
|
|
### Core
|
|
- React Native
|
|
- Expo
|
|
- TypeScript
|
|
- SQLite (via expo-sqlite)
|
|
|
|
### UI Components
|
|
- NativeWind
|
|
- React Navigation
|
|
- Lucide Icons
|
|
|
|
### Testing
|
|
- Jest
|
|
- React Native Testing Library
|
|
|
|
## Development
|
|
|
|
### Environment Setup
|
|
1. Install development tools
|
|
```bash
|
|
npm install -g expo-cli
|
|
```
|
|
|
|
2. Configure environment
|
|
```bash
|
|
cp .env.example .env
|
|
```
|
|
|
|
3. Configure development settings
|
|
```bash
|
|
npm run setup-dev
|
|
```
|
|
|
|
### Running Tests
|
|
```bash
|
|
# Run all tests
|
|
npm test
|
|
|
|
# Run with coverage
|
|
npm test -- --coverage
|
|
|
|
# Run in watch mode
|
|
npm test -- --watch
|
|
```
|
|
|
|
### Building for Production
|
|
```bash
|
|
# Build for iOS
|
|
eas build -p ios
|
|
|
|
# Build for Android
|
|
eas build -p android
|
|
```
|
|
|
|
## Contributing
|
|
|
|
1. Fork the repository
|
|
2. Create a feature branch
|
|
3. Commit your changes
|
|
4. Push to the branch
|
|
5. Open a Pull Request
|
|
|
|
Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct and development process.
|
|
|
|
## Documentation
|
|
|
|
- [Project Overview](docs/project-overview.md)
|
|
- [Architecture Guide](docs/architecture.md)
|
|
- [API Documentation](docs/api.md)
|
|
- [Testing Guide](docs/testing.md)
|
|
|
|
## License
|
|
|
|
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
|
|
## Acknowledgments
|
|
|
|
- [Expo](https://expo.dev/)
|
|
- [React Native](https://reactnative.dev/)
|
|
- [Nostr Protocol](https://github.com/nostr-protocol/nostr) |