Skip to content

AI-powered fitness PWA with workout tracking, nutrition management, and personalized coaching for optimal health results.

Notifications You must be signed in to change notification settings

Kasimkkn/flex-forge

Repository files navigation

FlexForge Fitness PWA - Complete Development Guide

🎯 Project Overview

FlexForge is a comprehensive Progressive Web App (PWA) for fitness tracking, health monitoring, nutrition management, and AI-powered personal coaching. The app features a sleek dark theme with vibrant orange accents and provides a complete ecosystem for users to achieve their fitness goals.

⚡ Key Features

  • AI-Powered Virtual Coaching with real-time chat support
  • Comprehensive Fitness Assessment and personalized scoring
  • Activity Tracking with GPS and real-time metrics
  • Smart Nutrition Management with calorie tracking and meal planning
  • Community Platform for fitness enthusiasts
  • Health Analytics with detailed progress visualization
  • Workout Libraries with extensive exercise databases
  • PWA Functionality for offline access and native app experience

🎨 Design System & Brand Guidelines

Color Palette

/* Primary Colors */
--primary-orange: #FF6B35;    /* Main brand color */
--dark-bg-primary: #1a1a1a;   /* Main background */
--dark-bg-secondary: #2a2a2a; /* Card backgrounds */
--white-text: #FFFFFF;        /* Primary text */

/* Accent Colors */
--accent-blue: #4A90E2;       /* Water/hydration tracking */
--accent-green: #28a745;      /* Nutrition/success states */
--accent-red: #dc3545;        /* Alerts/calorie burn */
--accent-purple: #8E44AD;     /* Premium/special features */

/* Gradients */
--orange-gradient: linear-gradient(135deg, #FF6B35 0%, #F7931E 100%);
--dark-gradient: linear-gradient(135deg, #1a1a1a 0%, #2a2a2a 100%);

Typography

  • Primary Font: Modern sans-serif (System fonts preferred for performance)
  • Base Font Size: 16px minimum for mobile readability
  • Line Height: 1.5 for optimal readability
  • Font Weights: 400 (regular), 600 (semibold), 700 (bold)

UI Component Standards

  • Border Radius: 12px for cards, 8px for buttons, 6px for small elements
  • Shadows: Subtle dark theme appropriate shadows with low opacity
  • Touch Targets: Minimum 44px for interactive elements
  • Spacing System: 8px base unit (8px, 16px, 24px, 32px, 48px)

📱 Complete Application Flow

Phase 1: User Onboarding Journey

1.1 Splash Screen

/* Key Requirements */
- Orange background (#FF6B35)
- White medical cross icon (centered)
- "FlexForge" branding
- "Your personal AI fitness coach" tagline
- Loading progress indicator
- Auto-redirect after 3 seconds
- Smooth fade transitions

1.2 Welcome/Onboarding Screens (6 screens)

Screen Flow:
1. "Welcome To FlexForge UI Kit" → Get Started CTA
2. "Personalized Fitness Plans" → AI-driven customization
3. "Extensive Workout Libraries" → 100K+ exercises
4. "Health Metrics & Fitness Analytics" → Data visualization
5. "Nutrition & Diet Guidance" → Meal planning
6. "Virtual AI Coach Mentoring" → 24/7 support

Technical Requirements:

  • Swipe navigation with touch gestures
  • Progress dots indicator
  • Skip option available
  • Smooth animations between screens
  • High-quality fitness imagery with dark overlays

1.3 Authentication System

Sign In Screen
<!-- Key Elements -->
- Dark background with gym equipment imagery
- Email input with validation
- Password input with show/hide toggle
- Orange "Sign In" button
- Social login options (Instagram, Facebook, LinkedIn)
- "Forgot Password" and "Sign Up" links
- Form validation with real-time feedback
Sign Up Screen
<!-- Validation Requirements -->
- Email format validation
- Password strength indicator
- Confirm password matching
- Real-time error display
- Terms and conditions acceptance
- Progressive enhancement for accessibility
Password Reset Flow
Options Available:
1. 📧 Send via Email (Orange theme)
2. 🔐 Send via 2FA (Blue theme)
3. 🔗 Send via Google Auth (Purple theme)

Confirmation: Password sent with re-send option

Phase 2: Profile Setup & Account Completion

2.1 Avatar Selection

  • Multiple avatar options with diverse representation
  • Custom photo upload capability
  • Image cropping and resizing
  • Default avatars as fallback

2.2 Personal Information Setup

Required Fields:
- Full Name
- Email Address (pre-filled)
- Date of Birth
- Gender Selection
- Height and Weight
- Activity Level
- Fitness Goals

2.3 Security Setup

Security Features:
- Password strength validation
- OTP verification (4-digit code)
- Biometric authentication setup
- 2FA configuration
- Device registration

2.4 FlexForge Score Generation

Score Ranges:
- 🔥 Excellent: 80-100 (Green theme)
- 💪 Good: 60-79 (Orange theme)
- 📊 Average: 40-59 (Blue theme)
- 🎯 Needs Improvement: 0-39 (Red theme)

Phase 3: Comprehensive Fitness Assessment (18+ Questions)

// Assessment Categories
const assessmentFlow = {
  personalInfo: ['fitness_level', 'gender', 'weight', 'age'],
  experience: ['previous_experience', 'self_rating', 'activity_days'],
  preferences: ['sleep_patterns', 'workout_focus', 'diet_preferences'],
  goals: ['specific_targets', 'timeline', 'motivation_factors'],
  analytics: ['body_analysis', 'sleep_analysis', 'ai_recommendations']
};

🏠 Core Application Sections

3.1 Home Dashboard & Smart Metrics

Main Dashboard Features

Widget Components:
- Personal greeting with user avatar
- Quick stats overview (progress circles)
- Activity timeline with graphs
- Strength tracking (Upper/Lower body)
- Nutrition overview (meals, calories)
- Social feed integration
- Quick action buttons

Smart Fitness Metrics Screens

Tracking Modules:
1. 📊 FlexForge Score: Detailed radar chart breakdown
2. ❤️ Heart Rate: Real-time monitoring (BPM tracking)
3. 📏 BMI Index: Progress visualization
4. 💧 Hydration: Daily water intake (bottle animation)
5. 🔥 Calorie Stats: Burn/intake with colorful charts
6. 😴 Sleep Tracking: Quality and duration metrics
7. 👟 Steps Counter: Daily step goals and trends
8. 🤖 AI Suggestions: Personalized recommendations

3.2 Activity Tracker System

Core Tracking Features

// Activity Types
const activityTypes = [
  'running', 'jogging', 'walking', 'cycling',
  'weightlifting', 'yoga', 'swimming', 'boxing',
  'cardio', 'strength_training', 'flexibility'
];

// Tracking Capabilities
- GPS route mapping
- Real-time metrics (pace, distance, calories)
- Live workout timers
- Heart rate monitoring
- Rep and set counting
- Form analysis with AI
- Progress photography
- Session summaries

Workout Session Flow

1. Activity Selection → Choose workout type
2. Route Planning → GPS-based routing (outdoor activities)
3. Live Tracking → Real-time metrics display
4. Session Complete → Summary with achievements
5. Data Analysis → Progress trends and insights

3.3 Workout & Training Library

Exercise Database Structure

const workoutLibrary = {
  categories: [
    'strength_training', 'cardio', 'flexibility',
    'sports_specific', 'rehabilitation', 'bodyweight'
  ],
  filters: {
    difficulty: ['beginner', 'intermediate', 'advanced'],
    duration: ['5-15min', '15-30min', '30-60min', '60min+'],
    equipment: ['no_equipment', 'dumbbells', 'barbell', 'machines'],
    muscle_groups: ['chest', 'back', 'legs', 'arms', 'core', 'full_body']
  }
};

Personalized Workout Features

  • AI-generated custom routines
  • Progressive overload tracking
  • Form correction with visual guides
  • Video demonstrations
  • Alternative exercise suggestions
  • Workout scheduling and reminders

3.4 Diet & Nutrition Management

Comprehensive Nutrition Tracking

const nutritionFeatures = {
  calorieTracking: {
    dailyGoals: 'Customizable calorie targets',
    macroBreakdown: 'Protein, carbs, fats visualization',
    mealPlanning: 'Breakfast, lunch, dinner, snacks',
    foodDatabase: 'Extensive ingredient library'
  },
  smartFeatures: {
    barcodeScanning: 'Product recognition',
    photoAnalysis: 'AI food identification',
    recipeBuilder: 'Custom recipe creation',
    nutritionInsights: 'Deficiency detection'
  }
};

Meal Management System

  • Recipe database with nutritional information
  • Meal prep planning and scheduling
  • Grocery list generation
  • Dietary restriction filters
  • Cultural cuisine options
  • Portion size guidance

🤖 AI-Powered Features

4.1 Virtual Fitness AI Chatbot

Comprehensive Chat Interface

const chatFeatures = {
  textChat: 'Natural language processing for fitness queries',
  voiceIntegration: 'Speech-to-text and text-to-speech',
  multiModal: 'Text, voice, and visual responses',
  contextAware: 'Remembers user history and preferences',
  realTimeCoaching: 'Live workout guidance and motivation',
  progressDiscussion: 'AI analysis of user achievements'
};

Chat Capabilities

  • Workout form correction
  • Nutrition advice and meal suggestions
  • Motivation and goal setting
  • Exercise modifications for injuries
  • Progress celebration and encouragement
  • 24/7 availability with context retention

4.2 Personalized Coaching System

AI Coach Features

Coach Specializations:
- 💪 Strength Training Specialist
- 🏃 Cardio and Endurance Expert
- 🧘 Flexibility and Mobility Coach
- 🥗 Nutrition and Diet Specialist
- 🏥 Rehabilitation and Injury Prevention
- 🎯 Goal-Specific Training Programs

Adaptive Program Management

  • Programs adjust based on progress
  • Injury accommodation and modifications
  • Plateau breakthrough strategies
  • Performance optimization recommendations
  • Schedule flexibility and rearrangement

👥 Community & Social Features

5.1 Fitness Community Platform

Social Features

const communityFeatures = {
  userProfiles: 'Fitness achievements and statistics',
  socialFeed: 'Workout updates and progress sharing',
  challenges: 'Group fitness challenges and competitions',
  forums: 'Topic-based discussion boards',
  mentorship: 'Experienced users guiding beginners',
  events: 'Local fitness meetups and virtual classes'
};

Content Management

  • User-generated workout content
  • Recipe sharing and rating system
  • Progress photo sharing (optional)
  • Achievement badges and recognition
  • Expert articles and fitness tips

5.2 Resource Library

Educational Content

  • Comprehensive fitness articles
  • Nutrition science explanations
  • Exercise technique tutorials
  • Injury prevention guides
  • Mental health and wellness content
  • Evidence-based fitness research

🔧 Technical Implementation Requirements

6.1 Progressive Web App (PWA) Specifications

Core PWA Features

// manifest.json requirements
{
  "name": "FlexForge Fitness Coach",
  "short_name": "FlexForge",
  "description": "Your personal AI fitness coach",
  "start_url": "/",
  "display": "standalone",
  "background_color": "#1a1a1a",
  "theme_color": "#FF6B35",
  "orientation": "portrait",
  "icons": [
    {
      "src": "/icons/icon-192x192.png",
      "sizes": "192x192",
      "type": "image/png"
    },
    {
      "src": "/icons/icon-512x512.png",
      "sizes": "512x512",
      "type": "image/png"
    }
  ]
}

Service Worker Requirements

// Critical caching strategies
const cacheStrategies = {
  appShell: 'Cache First - Core app structure',
  userData: 'Network First - Real-time updates',
  workoutVideos: 'Cache First - Large media files',
  staticAssets: 'Stale While Revalidate - Images, CSS, JS',
  apiData: 'Network First with Cache Fallback'
};

6.2 Responsive Design Implementation

Mobile-First Breakpoint Strategy

/* Mobile First Approach */
.container {
  /* Base styles for mobile (320px+) */
  padding: 16px;
  max-width: 100%;
}

/* Tablet (768px+) */
@media (min-width: 768px) {
  .container {
    padding: 24px;
    max-width: 768px;
    margin: 0 auto;
  }
}

/* Laptop (1024px+) */
@media (min-width: 1024px) {
  .container {
    padding: 32px;
    max-width: 1024px;
  }
}

/* Desktop (1440px+) */
@media (min-width: 1440px) {
  .container {
    max-width: 1200px;
  }
}

Touch-Friendly Design Requirements

/* Essential touch targets */
.button, .tap-target {
  min-height: 44px;
  min-width: 44px;
  padding: 12px 16px;
  margin: 8px 0;
}

/* Gesture support */
.swipeable {
  touch-action: pan-x;
  user-select: none;
}

/* Accessibility focus indicators */
.interactive:focus {
  outline: 2px solid #FF6B35;
  outline-offset: 2px;
}

6.3 Performance Optimization Strategy

Critical Performance Metrics

const performanceTargets = {
  firstContentfulPaint: '< 1.5s',
  largestContentfulPaint: '< 2.5s',
  timeToInteractive: '< 3.5s',
  cumulativeLayoutShift: '< 0.1',
  firstInputDelay: '< 100ms'
};

Loading Strategy Implementation

// Skeleton loader for smooth UX
const SkeletonLoader = {
  showFor: 'minimum 500ms to avoid flashing',
  fadeIn: 'gradual content replacement',
  matchLayout: 'exact content dimensions',
  animation: 'subtle shimmer effect'
};

// Progressive image loading
const imageOptimization = {
  lazyLoading: 'Below-the-fold images',
  responsiveImages: 'Multiple size variants',
  webpSupport: 'Modern format with fallbacks',
  blurredPlaceholders: 'Low-quality image previews'
};

🛡️ Security & Privacy Implementation

7.1 Authentication & Authorization

Multi-Factor Security

const securityLayers = {
  passwords: {
    minLength: 8,
    complexity: 'uppercase, lowercase, number, special char',
    strength: 'real-time strength indicator',
    hashing: 'bcrypt with salt rounds'
  },
  biometric: {
    fingerprint: 'WebAuthn API integration',
    faceID: 'Platform-specific implementation',
    fallback: 'PIN/password backup'
  },
  twoFactor: {
    authenticatorApp: 'TOTP support',
    smsBackup: 'Fallback verification',
    backupCodes: 'Recovery codes generation'
  }
};

7.2 Data Protection & Privacy

Privacy Compliance

const privacyFeatures = {
  dataMinimization: 'Collect only necessary information',
  encryption: 'End-to-end encryption for sensitive data',
  anonymization: 'Remove personally identifiable information',
  userControl: 'Data export and deletion options',
  consent: 'Granular privacy preference management',
  auditLog: 'User data access tracking'
};

🧪 Error Handling & Edge Cases

8.1 Comprehensive Error States

User-Friendly Error Screens

const errorStates = {
  notFound: {
    icon: 'magnifying_glass',
    message: 'Whoops! Coach S can\'t find this page :(',
    action: 'Take Me Home',
    statusCode: '404'
  },
  noInternet: {
    icon: 'wifi_off',
    message: 'It seems you don\'t have internet',
    action: 'Refresh or try again!',
    offlineMode: 'Show cached content'
  },
  serverError: {
    icon: 'server_error',
    message: 'Whoops! Our server seems to error',
    action: 'Contact Support',
    fallback: 'Offline functionality'
  },
  maintenance: {
    icon: 'hard_hat',
    message: 'We\'re undergoing maintenance :(',
    action: 'Come back in 15min',
    estimate: 'Real-time countdown'
  },
  accessDenied: {
    icon: 'traffic_cones',
    message: 'Hey! You don\'t have permission',
    action: 'Contact Support',
    upgrade: 'Feature unlock options'
  },
  featureLocked: {
    icon: 'padlock',
    message: 'This feature is only available for pro users',
    action: 'Go Pro, Now!',
    preview: 'Feature demonstration'
  }
};

8.2 Form Validation & Input Handling

Comprehensive Validation Strategy

const validationRules = {
  email: {
    format: 'RFC 5322 compliant regex',
    domain: 'DNS validation (optional)',
    length: 'Maximum 254 characters',
    disposable: 'Block temporary email services'
  },
  password: {
    length: '8-128 characters',
    complexity: 'Mixed case, numbers, symbols',
    dictionary: 'Common password prevention',
    personal: 'No personal information inclusion'
  },
  fitness: {
    weight: '1-1000 lbs/kg with unit conversion',
    height: '2-9 feet or 50-300 cm',
    age: '13-120 years with parental consent',
    heartRate: '30-250 BPM with medical warnings'
  },
  uploads: {
    images: 'JPEG, PNG, WebP < 10MB',
    videos: 'MP4, WebM < 100MB',
    malware: 'Server-side scanning',
    dimensions: 'Minimum/maximum resolution limits'
  }
};

🚀 Development Roadmap & Implementation Phases

Phase 1: Core Infrastructure (Weeks 1-3)

  • PWA setup with service worker
  • Responsive design system implementation
  • Authentication system with security
  • Basic user onboarding flow
  • Database schema and API design

Phase 2: Essential Features (Weeks 4-7)

  • Fitness assessment and scoring system
  • Basic activity tracking
  • User profile and settings
  • Core dashboard with metrics
  • Workout library foundation

Phase 3: Advanced Features (Weeks 8-12)

  • AI chatbot integration
  • Advanced nutrition tracking
  • Community platform development
  • Personalized coaching system
  • GPS and real-time tracking

Phase 4: Polish & Optimization (Weeks 13-16)

  • Performance optimization
  • Comprehensive testing
  • Accessibility compliance
  • Security audit and penetration testing
  • Beta user feedback integration

📋 Quality Assurance Checklist

Functional Testing

  • All user flows work seamlessly
  • Cross-browser compatibility (Chrome, Safari, Firefox, Edge)
  • Touch gestures work properly
  • Offline functionality operates correctly
  • Data synchronization works when back online

Performance Testing

  • Page load times meet targets
  • Smooth animations at 60fps
  • Memory usage remains optimal
  • Battery usage is minimized
  • Large dataset handling is efficient

Security Testing

  • Authentication cannot be bypassed
  • User data is properly encrypted
  • Input sanitization prevents XSS
  • API endpoints are secured
  • Rate limiting prevents abuse

Accessibility Testing

  • Screen reader compatibility
  • Keyboard navigation works completely
  • Color contrast meets WCAG AA standards
  • Focus indicators are visible
  • Alternative text provided for images

🎯 Success Metrics & KPIs

User Engagement Metrics

const successMetrics = {
  retention: {
    day1: '> 70%',
    day7: '> 40%',
    day30: '> 20%'
  },
  engagement: {
    sessionDuration: '> 8 minutes average',
    screensPerSession: '> 12 screens',
    weeklyActiveUsers: '> 60% of monthly users'
  },
  feature: {
    workoutCompletion: '> 85% of started workouts',
    chatbotUsage: '> 3 messages per session',
    communityParticipation: '> 25% monthly posting'
  }
};

📞 Support & Maintenance

Help Center Implementation

  • Comprehensive FAQ system
  • Video tutorials for key features
  • Live chat support integration
  • Community-driven help forums
  • Detailed troubleshooting guides
  • Multi-language support preparation

Continuous Improvement

  • User feedback collection and analysis
  • A/B testing for feature improvements
  • Performance monitoring and optimization
  • Security updates and vulnerability patching
  • Regular feature updates based on user needs

🏁 Conclusion

This comprehensive guide provides the foundation for building a world-class fitness PWA that prioritizes user experience, performance, and accessibility. The modular approach allows for iterative development while maintaining consistency across all features.

Remember: Every implementation decision should prioritize mobile users first, ensure seamless offline functionality, and maintain the high-quality user experience that modern fitness enthusiasts expect.

Key Development Principles to Follow:

  1. Mobile-First Always - Design and code for mobile, then enhance
  2. Performance is Non-Negotiable - Every feature must load fast and feel smooth
  3. Accessibility from Day One - Build inclusive experiences for all users
  4. Security by Design - Protect user data at every layer
  5. Progressive Enhancement - Ensure core functionality works everywhere

Build something amazing! 💪🚀

Community & Resources UI Overview

1. Community Landing Screen

  • Header: “Fitness Community & Resources”
  • Description: Connect, engage, and share with coaches and fitness peers.
  • Primary CTA: Explore Community →

2. Community Feed

  • Content:

    • Posts from members (e.g., Makise Kurisu) with:

      • Profile image & name
      • Post type: Video, Poll, Image
      • Engagement: Likes, Comments, Shares
    • Example Post Types:

      • Video workouts
      • Polls (e.g., “Favorite Fitness Snack?” with options and vote %).
      • Motivational images.
  • Interaction Options:

    • Like, Comment, Share
  • Bottom CTA: Add New Post +


3. Content Filtering

  • Filter Options:

    • Post Date: e.g., January 25, 2025
    • Post Type: Video, Image, Poll, Article
    • Length: For videos (minutes slider).
  • CTA: Apply Filter (35)


4. Resources Hub

  • Featured Resources:

    • How AI Revolutionizes Personalized Fitness Plans
  • Sections:

    • Our Articles (list with titles & tags)
    • Our Workshops (with price & attendee count)

5. Article Detail

  • Title: A Revolution in AI Wellness with Sandow

  • Content Structure:

    • Intro
    • How it’s being tackled
  • Image in article

  • Full Article Unlock:

    • CTA: Unlock Full Article – Go Pro Now!

6. Workshop Detail

  • Title: AI Revolution in Wellness

  • Details:

    • Date, Time, Duration
    • Workshop overview & agenda
  • Agenda Items:

    • Personalized Fitness 101
    • Navigating AI Coaching
  • Price CTA: Join Now $14.99


7. Add New Post

  • Step 1: Select Post Category

    • Options: Workout, Diet, Wellness, Mindset, Supplements, AI/ML
  • Step 2: Add Post Content

    • Post Type: Video, Gallery
    • Add Metrics (e.g., steps, calories)
    • Toggle for Hide From Community or Boost Post
  • Post Success Screen:

    • Confirmation message
    • CTA: View My Post

8. Notifications

  • Sections: Today, Last Week

  • Types:

    • New Followers
    • Unread Messages
    • Mentions
    • Someone Posted Video
    • Post Boost Approved

9. Profile & Messaging

  • Profile Screen:

    • Shows user stats (posts, followers)
    • List of user’s posts
    • Option to Edit Profile
  • Messaging Screen:

    • Chat with coach or other users

10. Post Management

  • Delete Post Confirmation:

    • Warning text
    • CTA: Yes, Delete

Here’s the detailed breakdown of the Virtual Fitness AI Chatbot module from your uploaded image:


Virtual Fitness AI Chatbot – UX Flow & Features

1. Landing Screen

  • Title: Talk to Personal AI Fitness Coach
  • Visual: AI robotic trainer image
  • CTA: Start Chatting →

2. Dashboard / My AI Chats

  • Stats Section:

    • Example: 9,781 Total AI Conversations
  • Chats List:

    • Ongoing & previous chats with coaches (e.g., Coach Sandow)
    • Status: Active or Archived
    • Quick access to new chat

3. New Chat Creation

  • Options for Chat Purpose:

    • Diet & Nutrition
    • Fitness Training
    • Mental Wellness
    • AI Q&A
    • Supplements Advice
  • Customization Settings:

    • AI Tone: Friendly, Professional, Motivational
    • Interaction Mode: Text, Voice, Video
  • CTA: Create AI Chat →


4. AI Chatbot Interaction Screens

  • Standard Chat View:

    • Messages in bubbles (AI in orange, user in gray)
    • Quick action buttons: Save, Favorite, Export Chat
  • Features Inside Chat: ✅ Video sharing (coach sending workout videos) ✅ Progress graphs & analytics inside chat (e.g., weight trend) ✅ Motivational audio snippets (voice coach) ✅ Workout setup via voice command (“Set up morning run”)


5. Fitness Progress Integration

  • AI Updates Progress:

    • Example: 76kg → 73kg in 2 weeks
    • Visuals: Human silhouette with measurement stats
  • In-chat insights:

    • AI suggesting next steps
    • Diet recommendations with images
    • Workout summaries and results

6. Advanced Features

  • Voice Command Support:

    • Users can speak commands (with mic button)
    • Examples: “Start 10-min warm-up,” “Track calories today.”
  • Custom AI Behavior:

    • Suggests AI personas for coaching styles
    • Ability to switch tone and expertise dynamically

7. Monetization & Token System

  • Free Plan Limit:

    • Limited chat tokens per month
    • Message: “Oops, out of Tokens!”
  • Premium Upgrade:

    • Unlimited AI chats for €8.49/month
    • CTA: Go Pro for Unlimited →

8. Settings & Management

  • Chat Settings:

    • Rename chat
    • Save or export conversation
    • Delete conversation (confirmation modal)
    • calculateDeliveryFee()
    • calculatePlatformFee()
    • generateOrderId()
    • truncateText() 7

About

AI-powered fitness PWA with workout tracking, nutrition management, and personalized coaching for optimal health results.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages