create-api-app


Namecreate-api-app JSON
Version 2.1.2 PyPI version JSON
download
home_pageNone
SummaryA quickstart tool for creating a FastAPI project with a NextJS frontend.
upload_time2024-06-28 16:10:36
maintainerNone
docs_urlNone
authorRyan Partridge
requires_python<4.0,>=3.12
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Create API App Quickstart Tool <!-- omit in toc -->

![PyPI - Python Version](https://img.shields.io/pypi/pyversions/create-api-app?style=flat&color=green)

Welcome to the quickstart tool for creating a `FastAPI` project with a `NextJS` frontend.

This tool creates a predefined template while installing the most recent packages where possible.

Found on:

- [PyPi](https://pypi.org/project/create-api-app/)
- [GitHub](https://github.com/Achronus/create-api-app/)

## Contents <!-- omit in toc -->

- [Why This Tool?](#why-this-tool)
- [The Stack](#the-stack)
- [Installation](#installation)
- [Running The Backend](#running-the-backend)
- [Running the Frontend](#running-the-frontend)
- [Customization](#customization)

## Why This Tool?

Creating a project from scratch can be a tedious process. Not only do you have to create all the files yourself, it typically requires a lot of small minor changes that can easily be automated. So, rather than wasting a lot of time setting up projects, I created a tool that does it all for me!

I use this tool personally for `SaaS` and `ML API` projects and have found it extremely useful for immediately diving into coding without faffing around with setup details (except for configuring API keys). Hopefully, it's useful to you too!

## The Stack

All projects are created using the same stack, consisting of the following:

1. Backend

   - [FastAPI](https://github.com/tiangolo/fastapi)
   - [Pydantic](https://docs.pydantic.dev/)
   - [MongoDB](https://www.mongodb.com/)
   - [Beanie](https://beanie-odm.dev/)
   - [Poetry](https://python-poetry.org/)
   - [Pytest](https://docs.pytest.org/)
   - [Hypothesis](https://hypothesis.readthedocs.io/)

2. Frontend

   a. Core:

     - [NextJS](https://nextjs.org/)
     - [TailwindCSS](https://tailwindcss.com/)
     - [TypeScript](https://www.typescriptlang.org/)
     - [Lucide React](https://lucide.dev/)
     - [Shadcn UI](https://ui.shadcn.com/)

   b. Optional:
     - [Clerk](https://clerk.com/docs/quickstarts/nextjs)
     - [Uploadthing](https://uploadthing.com/)
     - [Stripe](https://stripe.com/docs)

_Note: all libraries and packages are automatically installed to their latest versions when running the tool._

We've also added some extra files too! You can find out more about them in our [documentation](https://create.achronus.dev/file-structure/).

## Installation

1. Firstly, install [Docker](https://docs.docker.com/get-docker/), we use this to create the frontend files dynamically using the [Build NextJS App Tool](https://github.com/Achronus/build-nextjs-app).

2. Install the package through `PIP`:

   ```python
   pip install create_api_app
   ```

3. Create a project with a `name` and an `optional` string of `exclusion` characters for the `optional` packages.

   Exclusion options: `c`, `u`, `s`, `cs`, `cu`, `us`, `cus`.
   _`c` = `Clerk`, `u` = `Uploadthing`, `s` = `Stripe`_

   ```python
   create-api-app <project_name> <exclusions>
   ```

And that's it! You'll find two folders in your project, one called `frontend` (for NextJS) and another called `backend` (for FastAPI).

## Running The Backend

1. Open a terminal and navigate to the `backend` directory:

   ```cmd
   cd backend
   ```

2. Install a virtual environment for `Poetry`:

   ```cmd
   python -m venv env
   ```

3. Access it using one of the following (first -> `Windows`; second -> `Mac/Linux`):

   ```cmd
   .\env\Scripts\activate
   ```

   ```cmd
   source ./env/bin/activate
   ```

   _Not working? Refer to the [virtual env docs](https://docs.python.org/3/library/venv.html#how-venvs-work)._

4. Run the `uvicorn` server using the `Poetry` script:

   ```cmd
   app-start
   ```

## Running the Frontend

1. Open a terminal and navigate to the `frontend` directory:

   ```cmd
   cd frontend
   ```

2. Install the packages using [Node.js](https://nodejs.org/en):

   ```cmd
   npm install
   ```

3. Run the development server:

   ```cmd
   npm run dev
   ```

## Customization

Customization options are found in our [documentation](https://create.achronus.dev/customization/).

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "create-api-app",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.12",
    "maintainer_email": null,
    "keywords": null,
    "author": "Ryan Partridge",
    "author_email": "rpartridge101@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/f4/21/0b3dbab15bc63719c521a8264fc92aa21a28512d6a57b8338150edba4b09/create_api_app-2.1.2.tar.gz",
    "platform": null,
    "description": "# Create API App Quickstart Tool <!-- omit in toc -->\n\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/create-api-app?style=flat&color=green)\n\nWelcome to the quickstart tool for creating a `FastAPI` project with a `NextJS` frontend.\n\nThis tool creates a predefined template while installing the most recent packages where possible.\n\nFound on:\n\n- [PyPi](https://pypi.org/project/create-api-app/)\n- [GitHub](https://github.com/Achronus/create-api-app/)\n\n## Contents <!-- omit in toc -->\n\n- [Why This Tool?](#why-this-tool)\n- [The Stack](#the-stack)\n- [Installation](#installation)\n- [Running The Backend](#running-the-backend)\n- [Running the Frontend](#running-the-frontend)\n- [Customization](#customization)\n\n## Why This Tool?\n\nCreating a project from scratch can be a tedious process. Not only do you have to create all the files yourself, it typically requires a lot of small minor changes that can easily be automated. So, rather than wasting a lot of time setting up projects, I created a tool that does it all for me!\n\nI use this tool personally for `SaaS` and `ML API` projects and have found it extremely useful for immediately diving into coding without faffing around with setup details (except for configuring API keys). Hopefully, it's useful to you too!\n\n## The Stack\n\nAll projects are created using the same stack, consisting of the following:\n\n1. Backend\n\n   - [FastAPI](https://github.com/tiangolo/fastapi)\n   - [Pydantic](https://docs.pydantic.dev/)\n   - [MongoDB](https://www.mongodb.com/)\n   - [Beanie](https://beanie-odm.dev/)\n   - [Poetry](https://python-poetry.org/)\n   - [Pytest](https://docs.pytest.org/)\n   - [Hypothesis](https://hypothesis.readthedocs.io/)\n\n2. Frontend\n\n   a. Core:\n\n     - [NextJS](https://nextjs.org/)\n     - [TailwindCSS](https://tailwindcss.com/)\n     - [TypeScript](https://www.typescriptlang.org/)\n     - [Lucide React](https://lucide.dev/)\n     - [Shadcn UI](https://ui.shadcn.com/)\n\n   b. Optional:\n     - [Clerk](https://clerk.com/docs/quickstarts/nextjs)\n     - [Uploadthing](https://uploadthing.com/)\n     - [Stripe](https://stripe.com/docs)\n\n_Note: all libraries and packages are automatically installed to their latest versions when running the tool._\n\nWe've also added some extra files too! You can find out more about them in our [documentation](https://create.achronus.dev/file-structure/).\n\n## Installation\n\n1. Firstly, install [Docker](https://docs.docker.com/get-docker/), we use this to create the frontend files dynamically using the [Build NextJS App Tool](https://github.com/Achronus/build-nextjs-app).\n\n2. Install the package through `PIP`:\n\n   ```python\n   pip install create_api_app\n   ```\n\n3. Create a project with a `name` and an `optional` string of `exclusion` characters for the `optional` packages.\n\n   Exclusion options: `c`, `u`, `s`, `cs`, `cu`, `us`, `cus`.\n   _`c` = `Clerk`, `u` = `Uploadthing`, `s` = `Stripe`_\n\n   ```python\n   create-api-app <project_name> <exclusions>\n   ```\n\nAnd that's it! You'll find two folders in your project, one called `frontend` (for NextJS) and another called `backend` (for FastAPI).\n\n## Running The Backend\n\n1. Open a terminal and navigate to the `backend` directory:\n\n   ```cmd\n   cd backend\n   ```\n\n2. Install a virtual environment for `Poetry`:\n\n   ```cmd\n   python -m venv env\n   ```\n\n3. Access it using one of the following (first -> `Windows`; second -> `Mac/Linux`):\n\n   ```cmd\n   .\\env\\Scripts\\activate\n   ```\n\n   ```cmd\n   source ./env/bin/activate\n   ```\n\n   _Not working? Refer to the [virtual env docs](https://docs.python.org/3/library/venv.html#how-venvs-work)._\n\n4. Run the `uvicorn` server using the `Poetry` script:\n\n   ```cmd\n   app-start\n   ```\n\n## Running the Frontend\n\n1. Open a terminal and navigate to the `frontend` directory:\n\n   ```cmd\n   cd frontend\n   ```\n\n2. Install the packages using [Node.js](https://nodejs.org/en):\n\n   ```cmd\n   npm install\n   ```\n\n3. Run the development server:\n\n   ```cmd\n   npm run dev\n   ```\n\n## Customization\n\nCustomization options are found in our [documentation](https://create.achronus.dev/customization/).\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A quickstart tool for creating a FastAPI project with a NextJS frontend.",
    "version": "2.1.2",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "43166aa4149f520d7350200b630e34c7fa52d27f9a5f32981e1185b6c47ff418",
                "md5": "2017c56910aaa217b766108f1b6706d3",
                "sha256": "b88d012c5d8b2ba3c53f2278f72a3b5a03e71e794b5c963c658e4aae0663dcba"
            },
            "downloads": -1,
            "filename": "create_api_app-2.1.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2017c56910aaa217b766108f1b6706d3",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.12",
            "size": 30864,
            "upload_time": "2024-06-28T16:10:34",
            "upload_time_iso_8601": "2024-06-28T16:10:34.392940Z",
            "url": "https://files.pythonhosted.org/packages/43/16/6aa4149f520d7350200b630e34c7fa52d27f9a5f32981e1185b6c47ff418/create_api_app-2.1.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f4210b3dbab15bc63719c521a8264fc92aa21a28512d6a57b8338150edba4b09",
                "md5": "5dd9d0befa8656765a32b7b0f4c617aa",
                "sha256": "6571d09085e08233168390e21e16212f4102db82b3c1e11f8e23688085e2df8b"
            },
            "downloads": -1,
            "filename": "create_api_app-2.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "5dd9d0befa8656765a32b7b0f4c617aa",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.12",
            "size": 19279,
            "upload_time": "2024-06-28T16:10:36",
            "upload_time_iso_8601": "2024-06-28T16:10:36.795038Z",
            "url": "https://files.pythonhosted.org/packages/f4/21/0b3dbab15bc63719c521a8264fc92aa21a28512d6a57b8338150edba4b09/create_api_app-2.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-28 16:10:36",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "create-api-app"
}
        
Elapsed time: 1.51300s