wikifit / src /DOCUMENTATION.md
PhanindraVarma's picture
Upload 24 files
db020d5 verified
# 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