{"id":26522359,"url":"https://github.com/layinded/swx-api","last_synced_at":"2026-04-19T13:31:04.779Z","repository":{"id":283609891,"uuid":"952333169","full_name":"layinded/swx-api","owner":"layinded","description":"SwX is a modular, full-featured FastAPI starter template designed for building scalable, secure, and production-ready backend or full-stack applications with ease.","archived":false,"fork":false,"pushed_at":"2025-07-21T20:24:28.000Z","size":496,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-21T22:26:09.219Z","etag":null,"topics":["alembic","api","backend","boilderplate","devtools","fastapi","fastapi-crud","jwt","modular-architecture","oauth2","postgres","postgresql","production-ready","python","sqlalchemy","sqlmodel","template"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/layinded.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-03-21T05:35:48.000Z","updated_at":"2025-04-07T14:02:56.000Z","dependencies_parsed_at":"2025-07-21T22:11:32.556Z","dependency_job_id":null,"html_url":"https://github.com/layinded/swx-api","commit_stats":null,"previous_names":["layinded/swx-api"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/layinded/swx-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/layinded%2Fswx-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/layinded%2Fswx-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/layinded%2Fswx-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/layinded%2Fswx-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/layinded","download_url":"https://codeload.github.com/layinded/swx-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/layinded%2Fswx-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32008998,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alembic","api","backend","boilderplate","devtools","fastapi","fastapi-crud","jwt","modular-architecture","oauth2","postgres","postgresql","production-ready","python","sqlalchemy","sqlmodel","template"],"created_at":"2025-03-21T13:26:45.039Z","updated_at":"2026-04-19T13:31:04.752Z","avatar_url":"https://github.com/layinded.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 SwX-API\n\n![Python](https://img.shields.io/badge/Python-3.10%2B-blue)\n![FastAPI](https://img.shields.io/badge/FastAPI-🚀-brightgreen)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)\n![Docker Ready](https://img.shields.io/badge/Docker-Ready-blue)\n![CI/CD](https://img.shields.io/badge/CI%2FCD-GitHub_Actions-success)\n![Made with ❤️](https://img.shields.io/badge/Made_with-%E2%9D%A4-red)\n\n**SwX-API** is a Laravel-style, API-first **FastAPI** framework designed for speed, scalability, and maintainability. With a modular architecture, robust authentication (OAuth2, JWT, and social login), and production-grade tooling, it offers everything you need to kickstart your backend project.\n\n\u003e Built with ❤️ for developers who value flexibility and structure.\n\n---\n\n## ✨ Features\n\n- ⚡ **FastAPI** backend with modular folder structure (`core/`, `app/`)\n- 🗃️ **SQLModel** ORM with **PostgreSQL** support\n- 🔄 **Alembic** migrations with auto-generation\n- 🔐 **OAuth2 + JWT** authentication with refresh tokens\n- 👥 **Social login** support (Google, Facebook)\n- 🛡️ **Role-Based Access Control (RBAC)** \u0026 superuser support\n- 🌍 **i18n** with language preference detection\n- 🧠 **Dynamic model loading** \u0026 multilingual data seeding\n- 🛠️ **CLI Tool**: `swx` for scaffolding and automation  \n  _(e.g., `swx make:resource`, `swx migrate`)_\n- 📚 **MkDocs** auto-generated API docs from Python docstrings\n- 🧪 Pre-configured **logging**, **linting**, **formatting**, and **testing**\n- 🐳 **Docker-ready** with `docker-compose.yml`\n- ⚙️ Optional integration with **Traefik**, **Sentry**, and **GitHub Actions**\n- 🚀 **CI/CD**-friendly with production-grade deployment tools\n\n---\n\n## 📁 Project Structure\n\n```bash\nswx_api/\n├── app/                # User-defined application logic (routes, services)\n├── core/               # Core framework logic (auth, db, utils, etc.)\n├── docs/               # MkDocs documentation\n├── alembic/            # Alembic migrations\n├── scripts/            # CLI scripts\n├── Dockerfile          # Docker configuration\n├── docker-compose.yml  # Base Compose config\n└── ...\n\n```\n### 🛠️ Installation\n\n### Prerequisites\n\n- Python 3.10+\n- Docker \u0026 Docker Compose (optional)\n- PostgreSQL\n\n### 📦 Clone the Repository\n\n```bash\ngit clone https://github.com/yourusername/swx-api.git\ncd swx-api\n```\n\n### 🐍 Create a Virtual Environment\n\n```bash\npython -m venv .venv\nsource .venv/bin/activate  # On Windows: .venv\\Scripts\\activate\n```\n\n### 📥 Install Dependencies\n\n```bash\npip install -r requirements.txt\n```\n\n### ⚙️ Configure Environment Variables\n\nCreate a `.env` file in the project root with the following content:\n\n```env\nDATABASE_URL=postgresql+psycopg2://user:password@localhost:5432/swx_db\nJWT_SECRET_KEY=your_jwt_secret\n```\n\n\u003e Replace `user`, `password`, and `swx_db` with your actual PostgreSQL credentials and database name.\n\n### 🔄 Run Database Migrations\n\n```bash\nswx migrate\n```\n\n### 🚀 Start the Development Server\n\n```bash\nuvicorn main:app --reload\n```\n\n---\n\n### 🐳 Run with Docker (Optional)\n\nIf you prefer using Docker:\n\n```bash\ndocker-compose up --build\n```\n\n\u003e This will spin up the app along with PostgreSQL using the provided `docker-compose.yml`.\n\n---\n\n## Deployment\n\nDeployment docs: [deployment.md](./deployment.md).\n\n## Development\n\nGeneral development docs: [development.md](./development.md).\n\nThis includes using Docker Compose, custom local domains, `.env` configurations, etc.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flayinded%2Fswx-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flayinded%2Fswx-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flayinded%2Fswx-api/lists"}