# WikiFit Project Documentation ## Project Overview WikiFit is a Streamlit-based web application that serves as a fitness and health resource repository. The application allows users to: - Search for fitness topics using real Wikipedia API data - View curated workout plans based on fitness goals - Find evidence-based remedies for fitness-related issues - Take a fitness quiz to test knowledge - Generate personalized workout plans - Access nutrition information and exercise comparisons ## Project Structure ``` lingo-wiki/ ├── app.py # Main Streamlit application file ├── pages/ # Streamlit page modules │ ├── __init__.py # Package initialization file │ ├── home.py # Home page with featured content │ ├── search.py # Search functionality with multiple tabs │ ├── quiz.py # Interactive fitness quiz │ ├── workout_plans.py # Workout plan generator and API-based plans │ └── remedies.py # Fitness remedies using Wikipedia API ├── services/ # Service modules │ ├── __init__.py # Package initialization file │ ├── wiki_service.py # Wikipedia API service functions │ └── ai_service.py # AI service functions ├── test_api.py # Script to test API functions └── requirements.txt # Python dependencies ``` ## API Services The application uses real API calls to fetch fitness data from Wikipedia and other sources: ### wiki_service.py Functions | Function Name | Description | Parameters | Return Value | |---------------|-------------|------------|--------------| | `search_wiki` | Searches Wikipedia for fitness-related information | `query`: string | Dictionary with search results | | `get_article_details` | Gets detailed information about a Wikipedia article | `title`: string | Dictionary with article details | | `get_featured_content` | Gets featured fitness content from Wikipedia | None | Dictionary with article and facts | | `get_fitness_facts` | Gets random fitness facts | None | List of fact strings | | `get_fitness_tips` | Gets daily fitness tips | None | List of tip strings | | `search_fitness_exercise` | Searches for specific exercise information | `exercise_name`: string | Dictionary with exercise details | | `get_nutrition_information` | Gets nutritional info for a food | `food_name`: string | Dictionary with nutrition data | | `get_fitness_category_articles` | Gets articles from a fitness category | `category`: string, `limit`: int | Dictionary with category articles | | `get_exercise_comparison` | Compares different exercise types | `exercise_type`: string | Dictionary with comparison data | | `get_latest_fitness_research` | Gets latest fitness research articles | `topic`: string (optional) | Dictionary with research articles | | `get_workout_plan_by_goal` | Gets workout plan based on fitness goal | `goal`: string | Dictionary with workout plan | | `search_fitness_remedy` | Searches for remedies for common ailments | `ailment`: string | Dictionary with remedies and exercises | ## Page Functionality ### Home Page - Displays featured fitness content from Wikipedia - Shows daily fitness tip - Presents "Did you know" fitness facts - Links to other app sections ### Search Page The search page has multiple tabs: 1. **General Search**: Search Wikipedia for fitness information 2. **Nutrition Info**: Search for nutritional information about specific foods 3. **Workout Plans**: Get plans based on fitness goals 4. **Fitness Remedies**: Find remedies for common ailments ### Workout Plans Page - Generate personalized workout plans based on fitness goals - Browse featured API-based workout plans - Compare different exercise types - View latest fitness research ### Remedies Page - Browse remedies by category - Search for specific remedies - Get exercise recommendations for common ailments - View API-based information on muscle soreness, joint pain, and more ### Quiz Page - Test fitness knowledge through an interactive quiz - Receive score and feedback - Learn new fitness facts