Implements Task A1.1 - Config Sharing JSON API
Features:
- FastAPI backend with 6 endpoints
- Config analyzer with auto-categorization
- Full metadata extraction (24 fields per config)
- Category/tag/type filtering
- Direct config download endpoint
- Render deployment configuration
Endpoints:
- GET / - API information
- GET /api/configs - List all configs (filterable)
- GET /api/configs/{name} - Get specific config
- GET /api/categories - List categories with counts
- GET /api/download/{config_name} - Download config file
- GET /health - Health check
Metadata:
- name, description, type (single-source/unified)
- category (8 auto-detected categories)
- tags (language, domain, tech)
- primary_source (URL/repo)
- max_pages, file_size, last_updated
- download_url (skillseekersweb.com)
Categories:
- web-frameworks (12 configs)
- game-engines (4 configs)
- devops (2 configs)
- css-frameworks (1 config)
- development-tools (1 config)
- gaming (1 config)
- testing (2 configs)
- uncategorized (1 config)
Deployment:
- Configured for Render via render.yaml
- Domain: skillseekersweb.com
- Auto-deploys from main branch
Tests:
- ✅ All endpoints tested locally
- ✅ 24 configs discovered and analyzed
- ✅ Filtering works (category/tag/type)
- ✅ Download works for all configs
Issue: #9
Roadmap: FLEXIBLE_ROADMAP.md Task A1.1
268 lines
6.0 KiB
Markdown
268 lines
6.0 KiB
Markdown
# Skill Seekers Config API
|
|
|
|
FastAPI backend for discovering and downloading Skill Seekers configuration files.
|
|
|
|
## 🚀 Endpoints
|
|
|
|
### Base URL
|
|
- **Production**: `https://skillseekersweb.com`
|
|
- **Local**: `http://localhost:8000`
|
|
|
|
### Available Endpoints
|
|
|
|
#### 1. **GET /** - API Information
|
|
Returns API metadata and available endpoints.
|
|
|
|
```bash
|
|
curl https://skillseekersweb.com/
|
|
```
|
|
|
|
**Response:**
|
|
```json
|
|
{
|
|
"name": "Skill Seekers Config API",
|
|
"version": "1.0.0",
|
|
"endpoints": {
|
|
"/api/configs": "List all available configs",
|
|
"/api/configs/{name}": "Get specific config details",
|
|
"/api/categories": "List all categories",
|
|
"/docs": "API documentation"
|
|
},
|
|
"repository": "https://github.com/yusufkaraaslan/Skill_Seekers",
|
|
"website": "https://skillseekersweb.com"
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
#### 2. **GET /api/configs** - List All Configs
|
|
Returns list of all available configs with metadata.
|
|
|
|
**Query Parameters:**
|
|
- `category` (optional) - Filter by category (e.g., `web-frameworks`)
|
|
- `tag` (optional) - Filter by tag (e.g., `javascript`)
|
|
- `type` (optional) - Filter by type (`single-source` or `unified`)
|
|
|
|
```bash
|
|
# Get all configs
|
|
curl https://skillseekersweb.com/api/configs
|
|
|
|
# Filter by category
|
|
curl https://skillseekersweb.com/api/configs?category=web-frameworks
|
|
|
|
# Filter by tag
|
|
curl https://skillseekersweb.com/api/configs?tag=javascript
|
|
|
|
# Filter by type
|
|
curl https://skillseekersweb.com/api/configs?type=unified
|
|
```
|
|
|
|
**Response:**
|
|
```json
|
|
{
|
|
"version": "1.0.0",
|
|
"total": 24,
|
|
"filters": null,
|
|
"configs": [
|
|
{
|
|
"name": "react",
|
|
"description": "React framework for building user interfaces...",
|
|
"type": "single-source",
|
|
"category": "web-frameworks",
|
|
"tags": ["javascript", "frontend", "documentation"],
|
|
"primary_source": "https://react.dev/",
|
|
"max_pages": 300,
|
|
"file_size": 1055,
|
|
"last_updated": "2025-11-30T09:26:07+00:00",
|
|
"download_url": "https://skillseekersweb.com/api/download/react.json",
|
|
"config_file": "react.json"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
#### 3. **GET /api/configs/{name}** - Get Specific Config
|
|
Returns detailed information about a specific config.
|
|
|
|
```bash
|
|
curl https://skillseekersweb.com/api/configs/react
|
|
```
|
|
|
|
**Response:**
|
|
```json
|
|
{
|
|
"name": "react",
|
|
"description": "React framework for building user interfaces...",
|
|
"type": "single-source",
|
|
"category": "web-frameworks",
|
|
"tags": ["javascript", "frontend", "documentation"],
|
|
"primary_source": "https://react.dev/",
|
|
"max_pages": 300,
|
|
"file_size": 1055,
|
|
"last_updated": "2025-11-30T09:26:07+00:00",
|
|
"download_url": "https://skillseekersweb.com/api/download/react.json",
|
|
"config_file": "react.json"
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
#### 4. **GET /api/categories** - List Categories
|
|
Returns all available categories with config counts.
|
|
|
|
```bash
|
|
curl https://skillseekersweb.com/api/categories
|
|
```
|
|
|
|
**Response:**
|
|
```json
|
|
{
|
|
"total_categories": 5,
|
|
"categories": {
|
|
"web-frameworks": 7,
|
|
"game-engines": 2,
|
|
"devops": 2,
|
|
"css-frameworks": 1,
|
|
"uncategorized": 12
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
#### 5. **GET /api/download/{config_name}** - Download Config File
|
|
Downloads the actual config JSON file.
|
|
|
|
```bash
|
|
# Download react config
|
|
curl -O https://skillseekersweb.com/api/download/react.json
|
|
|
|
# Download with just name (auto-adds .json)
|
|
curl -O https://skillseekersweb.com/api/download/react
|
|
```
|
|
|
|
---
|
|
|
|
#### 6. **GET /health** - Health Check
|
|
Health check endpoint for monitoring.
|
|
|
|
```bash
|
|
curl https://skillseekersweb.com/health
|
|
```
|
|
|
|
**Response:**
|
|
```json
|
|
{
|
|
"status": "healthy",
|
|
"service": "skill-seekers-api"
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
#### 7. **GET /docs** - API Documentation
|
|
Interactive OpenAPI documentation (Swagger UI).
|
|
|
|
Visit: `https://skillseekersweb.com/docs`
|
|
|
|
---
|
|
|
|
## 📦 Metadata Fields
|
|
|
|
Each config includes the following metadata:
|
|
|
|
| Field | Type | Description |
|
|
|-------|------|-------------|
|
|
| `name` | string | Config identifier (e.g., "react") |
|
|
| `description` | string | What the config is used for |
|
|
| `type` | string | "single-source" or "unified" |
|
|
| `category` | string | Auto-categorized (e.g., "web-frameworks") |
|
|
| `tags` | array | Relevant tags (e.g., ["javascript", "frontend"]) |
|
|
| `primary_source` | string | Main documentation URL or repo |
|
|
| `max_pages` | int | Estimated page count for scraping |
|
|
| `file_size` | int | Config file size in bytes |
|
|
| `last_updated` | string | ISO 8601 date of last update |
|
|
| `download_url` | string | Direct download link |
|
|
| `config_file` | string | Filename (e.g., "react.json") |
|
|
|
|
---
|
|
|
|
## 🏗️ Categories
|
|
|
|
Configs are auto-categorized into:
|
|
|
|
- **web-frameworks** - Web development frameworks (React, Django, FastAPI, etc.)
|
|
- **game-engines** - Game development engines (Godot, Unity, etc.)
|
|
- **devops** - DevOps tools (Kubernetes, Ansible, etc.)
|
|
- **css-frameworks** - CSS frameworks (Tailwind, etc.)
|
|
- **development-tools** - Dev tools (Claude Code, etc.)
|
|
- **gaming** - Gaming platforms (Steam, etc.)
|
|
- **uncategorized** - Other configs
|
|
|
|
---
|
|
|
|
## 🏷️ Tags
|
|
|
|
Common tags include:
|
|
|
|
- **Language**: `javascript`, `python`, `php`
|
|
- **Domain**: `frontend`, `backend`, `devops`, `game-development`
|
|
- **Type**: `documentation`, `github`, `pdf`, `multi-source`
|
|
- **Tech**: `css`, `testing`, `api`
|
|
|
|
---
|
|
|
|
## 🚀 Local Development
|
|
|
|
### Setup
|
|
|
|
```bash
|
|
# Install dependencies
|
|
cd api
|
|
pip install -r requirements.txt
|
|
|
|
# Run server
|
|
python main.py
|
|
```
|
|
|
|
API will be available at `http://localhost:8000`
|
|
|
|
### Testing
|
|
|
|
```bash
|
|
# Test health check
|
|
curl http://localhost:8000/health
|
|
|
|
# List all configs
|
|
curl http://localhost:8000/api/configs
|
|
|
|
# Get specific config
|
|
curl http://localhost:8000/api/configs/react
|
|
|
|
# Download config
|
|
curl -O http://localhost:8000/api/download/react.json
|
|
```
|
|
|
|
---
|
|
|
|
## 📝 Deployment
|
|
|
|
### Render
|
|
|
|
This API is configured for Render deployment via `render.yaml`.
|
|
|
|
1. Push to GitHub
|
|
2. Connect repository to Render
|
|
3. Render auto-deploys from `render.yaml`
|
|
4. Configure custom domain: `skillseekersweb.com`
|
|
|
|
---
|
|
|
|
## 🔗 Links
|
|
|
|
- **API Documentation**: https://skillseekersweb.com/docs
|
|
- **GitHub Repository**: https://github.com/yusufkaraaslan/Skill_Seekers
|
|
- **Main Project**: https://github.com/yusufkaraaslan/Skill_Seekers#readme
|