Metadata-Version: 2.1
Name: detamvc
Version: 0.3.1
Summary: 
Author: MBeebe
Author-email: grow.food.everywhere@gmail.com
Requires-Python: >=3.8,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Requires-Dist: Jinja2 (>=3.1.2,<4.0.0)
Requires-Dist: deta (>=1.1.0,<2.0.0)
Requires-Dist: fastapi (>=0.78.0,<0.79.0)
Requires-Dist: mkdocs-material (>=8.5.7,<9.0.0)
Requires-Dist: odetam (>=1.2.0,<2.0.0)
Requires-Dist: python-dotenv (>=0.20.0,<0.21.0)
Requires-Dist: python-multipart (>=0.0.5,<0.0.6)
Requires-Dist: typer[all] (>=0.4.1,<0.5.0)
Description-Content-Type: text/markdown

![DetaMVC](https://detamvc.deta.dev/assets/images/detamvc.png)    


**Documentation:** [https://detamvc.deta.dev](https://detamvc.deta.dev)  
**Source Code:** [https://github.com/pyn-sol/detaMVC](https://github.com/pyn-sol/detaMVC)  


DetaMVC is a framework for rapidly developing and deploying web applications using:
- [FastAPI](https://fastapi.tiangolo.com/)
- [Jinja2](https://fastapi.tiangolo.com/advanced/templates/?h=jinja2)
- [Deta](https://docs.deta.sh/docs/home)  


## Work in Progress
Please note that DetaMVC is a work in progress currently. Some planned updates include:
- Support for exotic data types when scaffolding
- Implement Deta Auth when available
- Generate with other front ends

## Installation
```
pip install detamvc
```

Other Requirements:
- A Deta Account. If you do not have one, go to [Deta](https://www.deta.sh/) and click 'Join Deta'
- The [Deta CLI](https://docs.deta.sh/docs/cli/install)


## Basics
If you are familiar with Ruby on Rails, the commands are very similar for creating an application. 

```
detamvc new project

cd project

detamvc scaffold item name:str description:text price:float quantity:int available:bool
```

Before running your project, be sure to set your PROJECT_KEY for Deta. You can get this from your Deta dashboard under 'settings'.


```
echo DETA_PROJECT_KEY="#######_#############" > .env
```

Or, save yourself the hassle and set your development project key using the command. Hint: Do this _before_ creating a new project.

```
detamvc set-project-key #######_#################
```

**NOTE**: Deta Base is used as your database. We recommend creating a new Project called 'development' where you can play around with ideas while building. When you go to production, create a new project in Deta for this to be managed in.

## Run a Server Manually

This assumes you have uvicorn installed. You can run with other servers as you wish - just set up like you would for a normal [FastAPI](https://fastapi.tiangolo.com/deployment/manually/ "Run a Server Manually - Uvicorn") application.
```
detamvc s
```
or
```
uvicorn main:app --reload
```

## Deploy on Deta
Now you can deploy this on Deta!
Before running the following, you will need to install the [Deta CLI](https://docs.deta.sh/docs/cli/install)
```
deta new --project default
```
