nanda_arch


Namenanda_arch JSON
Version 1.0.10 PyPI version JSON
download
home_pagehttps://github.com/Jefferson5286/nanda-arch.git
SummaryAn opinionated backend framework, built on FastAPI and Tortoise ORM, for rapid and structured API development.
upload_time2025-07-11 20:27:14
maintainerNone
docs_urlNone
authorJeffers
requires_python<4.0,>=3.13
licenseMIT
keywords fastapi framework tortoise-orm async api rest
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Nanda Arch πŸš€

> An opinionated backend framework, built on FastAPI and Tortoise ORM, designed to accelerate the development of robust and scalable APIs in Python.

Inspired by the productivity and modular structure of Django, but with all the power and modernity of the asynchronous ecosystem.

---

## ✨ Philosophy

Nanda Arch was created to solve common problems at the beginning of backend projects by providing an organized structure and out-of-the-box tools, allowing you to focus on what truly matters: your application's business logic.

---

## πŸ”‘ Key Features

- πŸš€ **Productive CLI**: Create new projects and apps with the `nanda startproject` and `nanda startapp` commands.
- πŸ“¦ **Modular Architecture**: Organize your code into independent "apps," just like in Django.
- ⚑ **Fully Asynchronous**: Take full advantage of the performance of FastAPI and Tortoise ORM.
- πŸ”’ **Security Included**: A built-in security template with JWT (token creation and validation) and a role-based permission system ready to use.
- βš™οΈ **Environment-based Settings**: Configuration management with `python-decouple`, separating code from environment variables (`.env`).
- πŸ—„οΈ **Database Migrations**: Integrated with Aerich to manage your database schema migrations effortlessly.

---

## πŸ“‹ Requirements

- Python 3.13+
- Poetry

---

## πŸ› οΈ Framework Installation

To start using Nanda Arch to create your own projects, first install the framework itself:

```bash
# 1. Clone the repository
git clone https://github.com/your-username/nanda-arch.git

# 2. Navigate into the directory
cd nanda_arch-arch

# 3. Install dependencies and the 'nanda_arch' command
poetry install
````

---

## πŸš€ Quick Start: Creating Your First Project

Let's create a project from scratch in under 5 minutes.

### 1. Create the Project

Use the `nanda` command we just installed:

```bash
nanda_arch startproject my-awesome-project
```

### 2. Set Up the Environment

Navigate into the newly created project folder. You will find a `.env` file ready to be configured.

```bash
cd my-awesome-project
```

Open the `.env` file and set your `JWT_SECRET_KEY`. This is a critical security step. You can generate a strong key with the following command:

```bash
# This command generates a secure key. Copy and paste it into your .env file
openssl rand -hex 32
```

### 3. Install Project Dependencies

Each project generated by Nanda Arch has its own dependencies. Install them:

```bash
poetry install
```

### 4. Create Your First App

Let’s create an app to manage users:

```bash
nanda_arch startapp users
```

### 5. Register the App

Open the `system/settings.py` file and add your new app to the `INSTALLED_APPS` list:

```python
# system/settings.py

INSTALLED_APPS = [
    'apps.users.config',  # Add this line
]
```

### 6. Prepare the Database

Nanda Arch uses Aerich for migrations.

```bash
aerich init -t <your settings>

# Initializes Aerich, connecting it to Tortoise ORM
aerich init-db

# Creates the first migration file based on your models
aerich migrate --name "initial"

# Applies the migration, creating the tables in the database
aerich upgrade
```

### 7. Run the Server!

Everything is ready! Start the development server:

```bash
uvicorn main:app --reload
```

Open your browser to [http://127.0.0.1:8000/docs](http://127.0.0.1:8000/docs) to see the interactive API documentation!

---

## πŸ—οΈ Generated Project Structure

A project created with `nanda startproject` will have the following structure:

```
my-awesome-project/
β”œβ”€β”€ apps/                 # Where your modular apps will live
β”œβ”€β”€ system/               # The core of your project
β”‚   β”œβ”€β”€ core.py           # Main FastAPI instance and app registry
β”‚   β”œβ”€β”€ security.py       # Authentication logic, JWT, and permissions
β”‚   └── settings.py       # Project settings (apps, database, etc.)
β”œβ”€β”€ .env                  # Environment variables (NEVER commit this!)
β”œβ”€β”€ .gitignore            # Files to be ignored by Git
β”œβ”€β”€ main.py               # Entrypoint for the Uvicorn server
β”œβ”€β”€ pyproject.toml        # Project dependencies and settings
└── README.md             # Your project's documentation
```

---

## πŸ“„ License

This project is licensed under the **MIT License**. See the [LICENSE](LICENSE) file for more details.

---

## ❀️ A Personal Note

This project is dedicated with all my love to my girlfriend, **Mirelly Fernanda**, in celebration of our first year together. The name "Nanda" is a tribute to her.

β€” Made with love, Jefferson πŸ’»


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Jefferson5286/nanda-arch.git",
    "name": "nanda_arch",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.13",
    "maintainer_email": null,
    "keywords": "fastapi, framework, tortoise-orm, async, api, rest",
    "author": "Jeffers",
    "author_email": "jeffersonlima5286@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/a7/65/b2c7d2a671e333e58f77e40e5a9b9e6259bdd5ab3c944e3b3ced625e5b89/nanda_arch-1.0.10.tar.gz",
    "platform": null,
    "description": "# Nanda Arch \ud83d\ude80\n\n> An opinionated backend framework, built on FastAPI and Tortoise ORM, designed to accelerate the development of robust and scalable APIs in Python.\n\nInspired by the productivity and modular structure of Django, but with all the power and modernity of the asynchronous ecosystem.\n\n---\n\n## \u2728 Philosophy\n\nNanda Arch was created to solve common problems at the beginning of backend projects by providing an organized structure and out-of-the-box tools, allowing you to focus on what truly matters: your application's business logic.\n\n---\n\n## \ud83d\udd11 Key Features\n\n- \ud83d\ude80 **Productive CLI**: Create new projects and apps with the `nanda startproject` and `nanda startapp` commands.\n- \ud83d\udce6 **Modular Architecture**: Organize your code into independent \"apps,\" just like in Django.\n- \u26a1 **Fully Asynchronous**: Take full advantage of the performance of FastAPI and Tortoise ORM.\n- \ud83d\udd12 **Security Included**: A built-in security template with JWT (token creation and validation) and a role-based permission system ready to use.\n- \u2699\ufe0f **Environment-based Settings**: Configuration management with `python-decouple`, separating code from environment variables (`.env`).\n- \ud83d\uddc4\ufe0f **Database Migrations**: Integrated with Aerich to manage your database schema migrations effortlessly.\n\n---\n\n## \ud83d\udccb Requirements\n\n- Python 3.13+\n- Poetry\n\n---\n\n## \ud83d\udee0\ufe0f Framework Installation\n\nTo start using Nanda Arch to create your own projects, first install the framework itself:\n\n```bash\n# 1. Clone the repository\ngit clone https://github.com/your-username/nanda-arch.git\n\n# 2. Navigate into the directory\ncd nanda_arch-arch\n\n# 3. Install dependencies and the 'nanda_arch' command\npoetry install\n````\n\n---\n\n## \ud83d\ude80 Quick Start: Creating Your First Project\n\nLet's create a project from scratch in under 5 minutes.\n\n### 1. Create the Project\n\nUse the `nanda` command we just installed:\n\n```bash\nnanda_arch startproject my-awesome-project\n```\n\n### 2. Set Up the Environment\n\nNavigate into the newly created project folder. You will find a `.env` file ready to be configured.\n\n```bash\ncd my-awesome-project\n```\n\nOpen the `.env` file and set your `JWT_SECRET_KEY`. This is a critical security step. You can generate a strong key with the following command:\n\n```bash\n# This command generates a secure key. Copy and paste it into your .env file\nopenssl rand -hex 32\n```\n\n### 3. Install Project Dependencies\n\nEach project generated by Nanda Arch has its own dependencies. Install them:\n\n```bash\npoetry install\n```\n\n### 4. Create Your First App\n\nLet\u2019s create an app to manage users:\n\n```bash\nnanda_arch startapp users\n```\n\n### 5. Register the App\n\nOpen the `system/settings.py` file and add your new app to the `INSTALLED_APPS` list:\n\n```python\n# system/settings.py\n\nINSTALLED_APPS = [\n    'apps.users.config',  # Add this line\n]\n```\n\n### 6. Prepare the Database\n\nNanda Arch uses Aerich for migrations.\n\n```bash\naerich init -t <your settings>\n\n# Initializes Aerich, connecting it to Tortoise ORM\naerich init-db\n\n# Creates the first migration file based on your models\naerich migrate --name \"initial\"\n\n# Applies the migration, creating the tables in the database\naerich upgrade\n```\n\n### 7. Run the Server!\n\nEverything is ready! Start the development server:\n\n```bash\nuvicorn main:app --reload\n```\n\nOpen your browser to [http://127.0.0.1:8000/docs](http://127.0.0.1:8000/docs) to see the interactive API documentation!\n\n---\n\n## \ud83c\udfd7\ufe0f Generated Project Structure\n\nA project created with `nanda startproject` will have the following structure:\n\n```\nmy-awesome-project/\n\u251c\u2500\u2500 apps/                 # Where your modular apps will live\n\u251c\u2500\u2500 system/               # The core of your project\n\u2502   \u251c\u2500\u2500 core.py           # Main FastAPI instance and app registry\n\u2502   \u251c\u2500\u2500 security.py       # Authentication logic, JWT, and permissions\n\u2502   \u2514\u2500\u2500 settings.py       # Project settings (apps, database, etc.)\n\u251c\u2500\u2500 .env                  # Environment variables (NEVER commit this!)\n\u251c\u2500\u2500 .gitignore            # Files to be ignored by Git\n\u251c\u2500\u2500 main.py               # Entrypoint for the Uvicorn server\n\u251c\u2500\u2500 pyproject.toml        # Project dependencies and settings\n\u2514\u2500\u2500 README.md             # Your project's documentation\n```\n\n---\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the **MIT License**. See the [LICENSE](LICENSE) file for more details.\n\n---\n\n## \u2764\ufe0f A Personal Note\n\nThis project is dedicated with all my love to my girlfriend, **Mirelly Fernanda**, in celebration of our first year together. The name \"Nanda\" is a tribute to her.\n\n\u2014 Made with love, Jefferson \ud83d\udcbb\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "An opinionated backend framework, built on FastAPI and Tortoise ORM, for rapid and structured API development.",
    "version": "1.0.10",
    "project_urls": {
        "Homepage": "https://github.com/Jefferson5286/nanda-arch.git",
        "Repository": "https://github.com/Jefferson5286/nanda-arch.git"
    },
    "split_keywords": [
        "fastapi",
        " framework",
        " tortoise-orm",
        " async",
        " api",
        " rest"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bdf47104c0b4f1fd70c4347dd4c211d4856e4337349d0555dec71b75a303e864",
                "md5": "45228abee6b787e760009ae2f6fe220f",
                "sha256": "690431aa736ad7226fdf60c3c1d1d56c3ab573e5d338e8c17f3974d3dfb99b43"
            },
            "downloads": -1,
            "filename": "nanda_arch-1.0.10-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "45228abee6b787e760009ae2f6fe220f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.13",
            "size": 14330,
            "upload_time": "2025-07-11T20:27:13",
            "upload_time_iso_8601": "2025-07-11T20:27:13.030942Z",
            "url": "https://files.pythonhosted.org/packages/bd/f4/7104c0b4f1fd70c4347dd4c211d4856e4337349d0555dec71b75a303e864/nanda_arch-1.0.10-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a765b2c7d2a671e333e58f77e40e5a9b9e6259bdd5ab3c944e3b3ced625e5b89",
                "md5": "2254283d72c75490e874c5f9be808c28",
                "sha256": "0786eb64f6762d8260dc762a7b933d57a5bcf61952ea4e7d42e1a73e47850c82"
            },
            "downloads": -1,
            "filename": "nanda_arch-1.0.10.tar.gz",
            "has_sig": false,
            "md5_digest": "2254283d72c75490e874c5f9be808c28",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.13",
            "size": 12795,
            "upload_time": "2025-07-11T20:27:14",
            "upload_time_iso_8601": "2025-07-11T20:27:14.358758Z",
            "url": "https://files.pythonhosted.org/packages/a7/65/b2c7d2a671e333e58f77e40e5a9b9e6259bdd5ab3c944e3b3ced625e5b89/nanda_arch-1.0.10.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-11 20:27:14",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Jefferson5286",
    "github_project": "nanda-arch",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "nanda_arch"
}
        
Elapsed time: 0.42049s