# General introduction ## What is MycroForge? MycroForge is an opinionated CLI tool that is meant to facilitate the development of FastAPI & SQLAlchemy based backends. It provides a command line interface that allows users to generate a skeleton project and other common items like database entities, migrations, routers and even basic CRUD functionality. The main purpose of this tool is to generate boilerplate code and to provide a unified interface for performing recurrent development activities. ## Generating a project To generate a project you can run the following command. `m4g init ` ``` Description: Initialize a new project Usage: m4g init [options] Arguments: The name of your project Options: --without Features to exclude -?, -h, --help Show help and usage information ``` Running this command will generate ``` 📦 ┣ 📂.git ┣ 📂.venv ┣ 📂api ┃ ┗ 📂routers ┃ ┃ ┗ 📜hello.py ┣ 📂db ┃ ┣ 📂engine ┃ ┃ ┗ 📜async_session.py ┃ ┣ 📂entities ┃ ┃ ┗ 📜entity_base.py ┃ ┣ 📂versions ┃ ┣ 📜README ┃ ┣ 📜env.py ┃ ┣ 📜script.py.mako ┃ ┗ 📜settings.py ┣ 📜.gitignore ┣ 📜alembic.ini ┣ 📜db.docker-compose.yml ┣ 📜m4g.json ┣ 📜main.py ┗ 📜requirements.txt ```