Skip to main content

a lightweight foundation for building Python web tools.

Project description

Soseki

A lightweight, batteries-included Flask framework designed for rapidly building internal tools, admin panels, and data-driven web applications.

Soseki takes care of the repetitive infrastructure—authentication, database management, background jobs, API controls, and logging—so you can focus on building the features that matter. Perfect for prototypes, internal dashboards, and production-ready utilities that need to ship fast without sacrificing structure.

Features

  • 🔐 User Management - Complete authentication system with Flask-User
  • 📊 Database Management - SQLAlchemy integration with dual database support (app + logs)
  • Job Scheduling - Background job execution with APScheduler
  • 📧 Email Support - Built-in email functionality with Flask-Mail
  • 🔌 API Gateway - API key management and rate limiting
  • 📝 Request Logging - Comprehensive request/response logging
  • 🛠️ Database Versioning - Built-in database migration support
  • 🛠️ CLI - interactive command line for quick feature development and testing
  • 🎨 Customizable - YAML-based configuration system

Requirements

  • Python 3.10 or higher
  • Flask 3.0+
  • SQLAlchemy 2.0+

Installation

From PyPI (coming soon)

pip install soseki

From source

git clone https://github.com/acodingmind/soseki
cd soseki
pip install -e .

Development Installation

pip install -r requirements.txt
pip install -r requirements-dev.txt

Quick Start

  1. Initialize a new soseki like application:
# Create a project folder 
mkdir soseki_app
cd soseki_app

# Install soseki
python3 -m venv venv
source venv/bin/activate
pip install soseki

# Initialize basic soseki app
python3 -m ssk.cli init
  1. Update configuration file (cfg/lite.yaml):
ssk:
  USER_APP_NAME:
    string: 'MyApp'
  SECRET_KEY:
    string: 'your-secret-key-here'
  SQLALCHEMY_DATABASE_URI:
    string: 'sqlite:///myapp.sqlite'
  LOG_DB_CONNSTR:
    string: 'sqlite:///myapp_log.sqlite'
  1. Run your application:
# run the app
./bin/run_app.sh

Documentation

How To

Blanco App

Check the app/ directory for a complete working example application.

The standard folder structure (created by init command):

  • assets/local - Static files (CSS, JS)
  • blueprints/ - Flask blueprints
  • cfg/ - Configuration files
  • html/local - Templates
  • logic/cmd - Custom commands
  • logic/jobs - Background jobs
  • models/ - Database models

Project Structure

soseki/
├── ssk/              # Core framework package
├── app/              # Blanco application
├── bin/              # Utility scripts
├── tests/            # Test suite
├── docs/             # Documentation
└── requirements.txt  # Core dependencies

Running Tests

pytest

With coverage:

pytest --cov=ssk

License

MIT License - see LICENCE file for details.

Author

Michał Świtała - CodingMinds.io

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Support

For issues and questions, please use the GitHub issue tracker.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

soseki-0.8.8.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

soseki-0.8.8-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

Details for the file soseki-0.8.8.tar.gz.

File metadata

  • Download URL: soseki-0.8.8.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for soseki-0.8.8.tar.gz
Algorithm Hash digest
SHA256 885dbb635e64a07d626f0c43392296887b3c7eb5e80f220de56c39013b8703a8
MD5 0093c6da508a1e546b8725238310ccda
BLAKE2b-256 1e2a7cbc062f9a26ac525a0985055faab79cd79b5f0f8f3927ed7e5bb03a3bf9

See more details on using hashes here.

File details

Details for the file soseki-0.8.8-py3-none-any.whl.

File metadata

  • Download URL: soseki-0.8.8-py3-none-any.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for soseki-0.8.8-py3-none-any.whl
Algorithm Hash digest
SHA256 1f0d7d9105bd353a11f0d2ddc5705703e40dbfceb65d33852f53b13bf0b4645d
MD5 0800a1daaf954a8fa691f3fa1d9bebb8
BLAKE2b-256 e0846f21216156931169c65619a0ae8ae54c6d8dd67dec843e614f9012e4f3b3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page