All Projects → jcobhams → vessel

jcobhams / vessel

Licence: MIT License
Vessel is an opinionated bootstrap of files to setup an API centric Flask application.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to vessel

Mini
Just an extremely simple naked PHP application, useful for small projects and quick prototypes. Some might call it a micro framework :)
Stars: ✭ 1,308 (+8075%)
Mutual labels:  mvc, micro-framework
samanemvc
PHP Framework using MVC model developped by Ngor SECK!
Stars: ✭ 32 (+100%)
Mutual labels:  mvc
startmvc
超轻量php框架 lightweight php framework
Stars: ✭ 25 (+56.25%)
Mutual labels:  mvc
kiwi
A graphical UI framework on top of PyGTK
Stars: ✭ 24 (+50%)
Mutual labels:  mvc
mvc-tree
🌳 A chronological visualization of the family of MVC patterns.
Stars: ✭ 40 (+150%)
Mutual labels:  mvc
core
Erdiko framework core components
Stars: ✭ 18 (+12.5%)
Mutual labels:  micro-framework
generator-espress
an opinionated yeoman generator that scaffolds a mvc express webapp completely in es6
Stars: ✭ 20 (+25%)
Mutual labels:  mvc
DelphiWebMVC
delphi在web系统开发上没有像java或php 这样方便,对于一直使用delphi的工程师来说是个遗憾,因此使用delphi技术开发了一套Web框架,使用MVC模式,让工程师只需把精力放在模型与视图的设计上,让delphi开发web系统更方便
Stars: ✭ 25 (+56.25%)
Mutual labels:  mvc
crizmas-mvc
raulsebastianmihaila.github.io/crizmas-mvc-docs/
Stars: ✭ 12 (-25%)
Mutual labels:  mvc
laravel-make-service-command
🚀 Create a service layer for Laravel 5+ (Supported: Laravel 9)
Stars: ✭ 43 (+168.75%)
Mutual labels:  mvc
Library
JavaWeb图书销售管理系统/网上书店
Stars: ✭ 77 (+381.25%)
Mutual labels:  mvc
PyQt4 locadora
PyQt4 - Locadora de Veículos
Stars: ✭ 24 (+50%)
Mutual labels:  mvc
ASP.NET-Core-2-MVC-CRUD-datatables-jQuery-Plugin
Asp.Net Example implementation of datatables.net using Asp.Net Core 2 Mvc CRUD datatables jQuery Plugin
Stars: ✭ 25 (+56.25%)
Mutual labels:  mvc
espresso.js
Super minimal MVC library
Stars: ✭ 521 (+3156.25%)
Mutual labels:  mvc
TheWeatherDashboardApp
A small and stylish weather dashboard.
Stars: ✭ 29 (+81.25%)
Mutual labels:  mvc
leafMVC
MVC "Framework" created from Leaf PHP Framework
Stars: ✭ 25 (+56.25%)
Mutual labels:  mvc
java-bible
🍌 我的技术摘要
Stars: ✭ 2,950 (+18337.5%)
Mutual labels:  mvc
serverhub-mvc
Fast and reliable MVC framework for Nodejs
Stars: ✭ 16 (+0%)
Mutual labels:  mvc
SpaceInvadersEcs
Simple example of SpaceInvaders(Guns&Bullets variation) game using Entity-Component-System implementation by Leopotam. It's fine example how to use Leopotam ECS framework and how to use ECS-architecture in your game at all
Stars: ✭ 15 (-6.25%)
Mutual labels:  mvc
Readhub
Readhub AndroidClient
Stars: ✭ 40 (+150%)
Mutual labels:  mvc

Introduction

Vessel is an opinionated bootstrap of files to setup an API centric Flask application.

Its aims to provide a simple set of files and configuration required for building API services using Flask. Vessel is strongly opinionated about how control flows across your application, but its also very extensible. You can install any python packages you want and/or remove the ones you do not want.

Setup

To use Vessel, clone this repo into project_root, ensure your python environments are configured and activated.

Run: $ pip install -r requirements.txt

This will pull and install all vessel dependencies into the current or active virtual environment. Copy the content of .env_sample into .env and set proper environment variables.

Start Server

In the project_root with environment activated,

Run: $ python run.py runserver

Open your browser and enter http://127.0.0.1:5000/api/v1/

vessel CLI Tool

Vessel comes with a small CLI tool to help generate commmonly used utilities like models, repositories, blueprints, controllers, tests and factories

Example:

Usage: python vessel.py

Command Line Arguments
   make:model name eg. python vessel.py make:model user [--with_repo [_controller] ]
   make:repo name eg. python vessel.py make:repo user
   make:blueprint name eg. python vessel.py make:blueprint vendors [--url_prefix=vendors]
   make:controller name eg. python vessel.py make:controller user
   make:test name eg python vessel.py make:test test_user_repo - This command will parse paths and write to the valid paths provided
   make:factory name eg python vessel.py make:factory role
   show_routes eg python vessel.py show_routes

Tests

Ofcourse there's support for testing using pytest. To create a new test suite, simply run the make:test command on the CLI.

eg. $ python vessel.py make:test integration/endpoints/test_user_endpoints

To run tests $ python -m pytest

Folder and Code Structure

|-- project_root
    |-- app/
        |-- blueprints/
            |-- base_blueprint.py
        |-- controllers/
            |-- __init__.py
            |-- base_controller.py
        |-- models/
            |-- __init__.py
            |-- base_model.py
        |-- repositories/
            |-- __init__.py
            |-- base_repo.py
        |-- utils/
            |-- __init__.py
            |-- auth.py
            |-- security.py
        |-- __init__.py
        |-- test_db.db
    |-- config/
        |-- __init__.py
        |-- env.py
    |-- factories
        |-- __init__.py
    |-- migrations
    |-- tests
        |-- integration/
            |-- endpoints/
                |-- __init__.py
                |-- test_dummy_endpoints.py
            |-- __init__.py
        |-- unit
            |-- repositories/
            |-- test_auth.py
        |-- __init__.py
        |-- base_test_case.py
    |-- .env_sample
    |-- .gitignore
    |-- LICENSE
    |-- Procfile
    |-- pytest.ini
    |-- README.md
    |-- requirements.txt
    |-- run.py
    |-- vessel.py

Procfile

For Heroku enthusiast. Delete if you'd not be deploying to Heroku.

Bugs, Corrections, Feedback, Contributing

No system is 100% I'd be happy if you can jump in and collaborate. If you find bugs or errors or see places where you can improve on, fork the repo, and raise a PR or shoot me an email. jcobhams[at]gmail[dot]com

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].