✨ Features
- Interactive project setup wizard
- Multiple framework support: Flask, FastAPI, Bottle (WIP), Pyramid (WIP)
- Modular project structure
- Webapp and API templates
- Automatic virtual environment setup
- Dependency management
- Test scaffolding with pytest
- Update checker for the CLI
- Easy project runner
🛠️ Installation
pip install amen-cli
🚀 Quick Start
# Create a new project
amen create
# Or use flags for automation:
amen create -f flask -t webapp -n myapp
Flags:
-f, --framework
Framework (flask, fastapi, bottle, pyramid)-t, --type
Application type (webapp, api)-n, --name
Project name
Run your app:
cd myapp
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
python run.py
# Or, from the parent directory:
amen run myapp
🏗️ Project Structure
your-app/
├── venv/ # Virtual environment
├── your-app/ # Main application package
│ ├── api/ # API endpoints (endpoints.py)
│ ├── auth/ # Authentication (token.py, etc.)
│ ├── models/ # Models module
│ ├── static/ # Static files (CSS, JS, images)
│ │ ├── uploads/
│ │ ├── css/
│ │ └── js/
│ ├── templates/ # HTML templates (if webapp)
│ └── app.py / main.py # Main application file (Flask: app.py, FastAPI: main.py)
├── tests/ # Test files
├── docs/ # Documentation
├── requirements.txt # Python dependencies
├── .env # Environment variables (local)
├── .env.example # Environment variables template
├── .gitignore # Git ignore rules
├── run.py # Application runner
└── README.md # Project documentation
🎯 Framework Support
Framework | Description | Default Port | Status |
---|---|---|---|
Flask | Lightweight WSGI web framework | 5000 | ✅ |
FastAPI | Modern, fast web framework | 8000 | ✅ |
Django | High-level Python web framework | 8000 | ❌ |
Bottle | Fast, simple micro framework | 8080 | 🚧 |
Pyramid | Flexible web framework | 6543 | 🚧 |
📖 Usage
# Create a new project
amen create
# Run your application
amen run <app_name>
# Run tests
amen test <app_name>
# Check for updates
amen check-update
# Manage project configuration
amen config <app_name>
🔧 Development
git clone https://github.com/taqsblaze/amen-cli.git
pip install -e .
pip install pytest pytest-cov
pytest
pytest --cov
🤝 Contributing
- Fork the repository
- Create your feature branch:
git checkout -b feature/amazing-feature
- Make your changes
- Push to the branch:
git push origin feature/amazing-feature
- Open a Pull Request
👥 Contact & Support
⭐ Credits
Created by Tanaka Chinengundu
Inspired by Laravel's elegant development experience