fastapi-init-project


Namefastapi-init-project JSON
Version 0.2.2 PyPI version JSON
download
home_pagehttps://github.com/rameshkannanyt/fastapi-init
SummaryA comprehensive toolkit for kickstarting FastAPI projects with best practices.
upload_time2025-07-22 03:52:45
maintainerNone
docs_urlNone
authorRamesh Kannan S
requires_python>=3.8
licenseNone
keywords fastapi scaffolding toolkit web api framework fastapi-init
VCS
bugtrack_url
requirements fastapi uvicorn jinja2 httpx pytest pytest-asyncio pydantic sqlalchemy databases aiofiles python-dotenv
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # FastAPI Init Project ๐Ÿš€

[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
[![FastAPI](https://img.shields.io/badge/FastAPI-0.100+-green.svg)](https://fastapi.tiangolo.com/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

A comprehensive toolkit for kickstarting FastAPI projects with best practices, production-ready configurations, and modern development tools.

- **GitHub:** [rameshkannanyt/fastapi-init](https://github.com/rameshkannanyt/fastapi-init)
- **Maintainer:** rameshkannanyt0078@gmail.com

---

## โœจ Features

- ๐Ÿ—๏ธ Project scaffolding with best-practice structure
- ๐Ÿ” JWT authentication & security
- ๐Ÿ—„๏ธ SQLAlchemy ORM & Alembic migrations
- ๐Ÿงช Pytest-based test setup
- ๐Ÿณ Docker & Docker Compose support
- ๐Ÿ“Š Health checks & onboarding reports
- ๐Ÿ”’ CORS & environment validation
- ๐Ÿ“ Structured logging
- ๐Ÿ“š Automatic API documentation

---

## ๐Ÿš€ Quick Start

### Installation

```bash
pip install -e .
```

### Create a New Project

```bash
fastapi-init-project init my-api
# Options:
#   --with-database   Include database setup
#   --with-auth       Include JWT authentication
#   --with-docker     Include Docker & Compose
#   --with-tests      Include test setup

# Example:
fastapi-init-project init my-api --with-database --with-auth --with-docker --with-tests
```

### CLI Commands

```bash
fastapi-init-project init <project_name> [options]   # Scaffold a new project
fastapi-init-project env-check                      # Check environment for issues
fastapi-init-project onboarding-report              # Generate onboarding report
fastapi-init-project setup-database                 # Set up Alembic migrations
fastapi-init-project docker-setup                   # Add Docker configuration
```

---

## ๐Ÿ“ Project Structure

```
my-api/
โ”œโ”€โ”€ app/
โ”‚   โ”œโ”€โ”€ api/
โ”‚   โ”‚   โ””โ”€โ”€ v1/
โ”‚   โ”‚       โ”œโ”€โ”€ auth_router.py
โ”‚   โ”‚       โ”œโ”€โ”€ health.py
โ”‚   โ”‚       โ””โ”€โ”€ router.py
โ”‚   โ”œโ”€โ”€ core/
โ”‚   โ”‚   โ”œโ”€โ”€ auth.py
โ”‚   โ”‚   โ”œโ”€โ”€ config.py
โ”‚   โ”‚   โ”œโ”€โ”€ database.py
โ”‚   โ”‚   โ”œโ”€โ”€ logging.py
โ”‚   โ”‚   โ””โ”€โ”€ middleware.py
โ”‚   โ”œโ”€โ”€ models/
โ”‚   โ”‚   โ””โ”€โ”€ models.py
โ”‚   โ”œโ”€โ”€ schemas/
โ”‚   โ”‚   โ””โ”€โ”€ schemas.py
โ”‚   โ””โ”€โ”€ main.py
โ”œโ”€โ”€ tests/
โ”œโ”€โ”€ alembic/
โ”œโ”€โ”€ logs/
โ”œโ”€โ”€ requirements.txt
โ”œโ”€โ”€ Dockerfile
โ”œโ”€โ”€ docker-compose.yml
โ”œโ”€โ”€ .env.example
โ””โ”€โ”€ README.md
```

---

## ๐Ÿงช Testing

```bash
pytest
pytest --cov=app
```

---

## ๐Ÿณ Docker

```bash
docker build -t my-api .
docker run -p 8000:8000 my-api
docker-compose up -d
```

---

## โš™๏ธ Configuration

Copy `.env.example` to `.env` and edit as needed:
- `SECRET_KEY`: JWT secret key
- `DATABASE_URL`: Database connection string
- `DEBUG`: Enable debug mode
- `ALLOWED_ORIGINS`: CORS allowed origins

---

## ๐Ÿ“š Documentation

- **Swagger UI:** http://localhost:8000/docs
- **ReDoc:** http://localhost:8000/redoc
- **Health Check:** http://localhost:8000/health

---

## ๐Ÿค Contributing

Contributions are welcome! Please open issues or pull requests on [GitHub](https://github.com/rameshkannanyt/fastapi-init).

---

## ๐Ÿ“„ License

MIT License. See [LICENSE](LICENSE) for details.

---

**Made with โค๏ธ for the FastAPI community**

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/rameshkannanyt/fastapi-init",
    "name": "fastapi-init-project",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "fastapi, scaffolding, toolkit, web, api, framework, fastapi-init",
    "author": "Ramesh Kannan S",
    "author_email": "yrameshkannanyt007@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/4f/e2/96a30f52ae37e6189cb5ce8bf76db0987e79424642356230830042ec6301/fastapi_init_project-0.2.2.tar.gz",
    "platform": null,
    "description": "# FastAPI Init Project \ud83d\ude80\r\n\r\n[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)\r\n[![FastAPI](https://img.shields.io/badge/FastAPI-0.100+-green.svg)](https://fastapi.tiangolo.com/)\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\r\n\r\nA comprehensive toolkit for kickstarting FastAPI projects with best practices, production-ready configurations, and modern development tools.\r\n\r\n- **GitHub:** [rameshkannanyt/fastapi-init](https://github.com/rameshkannanyt/fastapi-init)\r\n- **Maintainer:** rameshkannanyt0078@gmail.com\r\n\r\n---\r\n\r\n## \u2728 Features\r\n\r\n- \ud83c\udfd7\ufe0f Project scaffolding with best-practice structure\r\n- \ud83d\udd10 JWT authentication & security\r\n- \ud83d\uddc4\ufe0f SQLAlchemy ORM & Alembic migrations\r\n- \ud83e\uddea Pytest-based test setup\r\n- \ud83d\udc33 Docker & Docker Compose support\r\n- \ud83d\udcca Health checks & onboarding reports\r\n- \ud83d\udd12 CORS & environment validation\r\n- \ud83d\udcdd Structured logging\r\n- \ud83d\udcda Automatic API documentation\r\n\r\n---\r\n\r\n## \ud83d\ude80 Quick Start\r\n\r\n### Installation\r\n\r\n```bash\r\npip install -e .\r\n```\r\n\r\n### Create a New Project\r\n\r\n```bash\r\nfastapi-init-project init my-api\r\n# Options:\r\n#   --with-database   Include database setup\r\n#   --with-auth       Include JWT authentication\r\n#   --with-docker     Include Docker & Compose\r\n#   --with-tests      Include test setup\r\n\r\n# Example:\r\nfastapi-init-project init my-api --with-database --with-auth --with-docker --with-tests\r\n```\r\n\r\n### CLI Commands\r\n\r\n```bash\r\nfastapi-init-project init <project_name> [options]   # Scaffold a new project\r\nfastapi-init-project env-check                      # Check environment for issues\r\nfastapi-init-project onboarding-report              # Generate onboarding report\r\nfastapi-init-project setup-database                 # Set up Alembic migrations\r\nfastapi-init-project docker-setup                   # Add Docker configuration\r\n```\r\n\r\n---\r\n\r\n## \ud83d\udcc1 Project Structure\r\n\r\n```\r\nmy-api/\r\n\u251c\u2500\u2500 app/\r\n\u2502   \u251c\u2500\u2500 api/\r\n\u2502   \u2502   \u2514\u2500\u2500 v1/\r\n\u2502   \u2502       \u251c\u2500\u2500 auth_router.py\r\n\u2502   \u2502       \u251c\u2500\u2500 health.py\r\n\u2502   \u2502       \u2514\u2500\u2500 router.py\r\n\u2502   \u251c\u2500\u2500 core/\r\n\u2502   \u2502   \u251c\u2500\u2500 auth.py\r\n\u2502   \u2502   \u251c\u2500\u2500 config.py\r\n\u2502   \u2502   \u251c\u2500\u2500 database.py\r\n\u2502   \u2502   \u251c\u2500\u2500 logging.py\r\n\u2502   \u2502   \u2514\u2500\u2500 middleware.py\r\n\u2502   \u251c\u2500\u2500 models/\r\n\u2502   \u2502   \u2514\u2500\u2500 models.py\r\n\u2502   \u251c\u2500\u2500 schemas/\r\n\u2502   \u2502   \u2514\u2500\u2500 schemas.py\r\n\u2502   \u2514\u2500\u2500 main.py\r\n\u251c\u2500\u2500 tests/\r\n\u251c\u2500\u2500 alembic/\r\n\u251c\u2500\u2500 logs/\r\n\u251c\u2500\u2500 requirements.txt\r\n\u251c\u2500\u2500 Dockerfile\r\n\u251c\u2500\u2500 docker-compose.yml\r\n\u251c\u2500\u2500 .env.example\r\n\u2514\u2500\u2500 README.md\r\n```\r\n\r\n---\r\n\r\n## \ud83e\uddea Testing\r\n\r\n```bash\r\npytest\r\npytest --cov=app\r\n```\r\n\r\n---\r\n\r\n## \ud83d\udc33 Docker\r\n\r\n```bash\r\ndocker build -t my-api .\r\ndocker run -p 8000:8000 my-api\r\ndocker-compose up -d\r\n```\r\n\r\n---\r\n\r\n## \u2699\ufe0f Configuration\r\n\r\nCopy `.env.example` to `.env` and edit as needed:\r\n- `SECRET_KEY`: JWT secret key\r\n- `DATABASE_URL`: Database connection string\r\n- `DEBUG`: Enable debug mode\r\n- `ALLOWED_ORIGINS`: CORS allowed origins\r\n\r\n---\r\n\r\n## \ud83d\udcda Documentation\r\n\r\n- **Swagger UI:** http://localhost:8000/docs\r\n- **ReDoc:** http://localhost:8000/redoc\r\n- **Health Check:** http://localhost:8000/health\r\n\r\n---\r\n\r\n## \ud83e\udd1d Contributing\r\n\r\nContributions are welcome! Please open issues or pull requests on [GitHub](https://github.com/rameshkannanyt/fastapi-init).\r\n\r\n---\r\n\r\n## \ud83d\udcc4 License\r\n\r\nMIT License. See [LICENSE](LICENSE) for details.\r\n\r\n---\r\n\r\n**Made with \u2764\ufe0f for the FastAPI community**\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A comprehensive toolkit for kickstarting FastAPI projects with best practices.",
    "version": "0.2.2",
    "project_urls": {
        "Bug Reports": "https://github.com/rameshkannanyt/fastapi-init/issues",
        "Documentation": "https://github.com/rameshkannanyt/fastapi-init#readme",
        "Homepage": "https://github.com/rameshkannanyt/fastapi-init",
        "Source": "https://github.com/rameshkannanyt/fastapi-init"
    },
    "split_keywords": [
        "fastapi",
        " scaffolding",
        " toolkit",
        " web",
        " api",
        " framework",
        " fastapi-init"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ece3ea414d18c1d1ce3be40c80da6c93c092ffa62c85aa6bbf1c6dc17bb7f4db",
                "md5": "b15ebc66e4f0783b9711bd5be0a2f04f",
                "sha256": "0336c77ada59de7e6360bf8f1b1aa85cd78c1872fccda2c563dc5510f2ec54b6"
            },
            "downloads": -1,
            "filename": "fastapi_init_project-0.2.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b15ebc66e4f0783b9711bd5be0a2f04f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 29076,
            "upload_time": "2025-07-22T03:52:44",
            "upload_time_iso_8601": "2025-07-22T03:52:44.141936Z",
            "url": "https://files.pythonhosted.org/packages/ec/e3/ea414d18c1d1ce3be40c80da6c93c092ffa62c85aa6bbf1c6dc17bb7f4db/fastapi_init_project-0.2.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4fe296a30f52ae37e6189cb5ce8bf76db0987e79424642356230830042ec6301",
                "md5": "fa783df03c75f40688cbf14e799213ab",
                "sha256": "b0fa944efc92d6e2af162472857314e6a2f12089da30a4870bed0a1bba57581a"
            },
            "downloads": -1,
            "filename": "fastapi_init_project-0.2.2.tar.gz",
            "has_sig": false,
            "md5_digest": "fa783df03c75f40688cbf14e799213ab",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 25623,
            "upload_time": "2025-07-22T03:52:45",
            "upload_time_iso_8601": "2025-07-22T03:52:45.582418Z",
            "url": "https://files.pythonhosted.org/packages/4f/e2/96a30f52ae37e6189cb5ce8bf76db0987e79424642356230830042ec6301/fastapi_init_project-0.2.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-22 03:52:45",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "rameshkannanyt",
    "github_project": "fastapi-init",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "fastapi",
            "specs": []
        },
        {
            "name": "uvicorn",
            "specs": []
        },
        {
            "name": "jinja2",
            "specs": []
        },
        {
            "name": "httpx",
            "specs": []
        },
        {
            "name": "pytest",
            "specs": []
        },
        {
            "name": "pytest-asyncio",
            "specs": []
        },
        {
            "name": "pydantic",
            "specs": []
        },
        {
            "name": "sqlalchemy",
            "specs": []
        },
        {
            "name": "databases",
            "specs": []
        },
        {
            "name": "aiofiles",
            "specs": []
        },
        {
            "name": "python-dotenv",
            "specs": []
        }
    ],
    "lcname": "fastapi-init-project"
}
        
Elapsed time: 0.42290s