https://github.com/seapagan/seapagan
My profile repository
https://github.com/seapagan/seapagan
Last synced: 3 months ago
JSON representation
My profile repository
- Host: GitHub
- URL: https://github.com/seapagan/seapagan
- Owner: seapagan
- Created: 2022-04-26T17:10:18.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-03-29T10:32:53.000Z (10 months ago)
- Last Synced: 2025-04-21T15:25:05.955Z (9 months ago)
- Size: 97.7 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Grant Ramsay
## Python Backend and API developer with Front-end skills
I have been programming in one form or other since I was 10 (ZX81 BASIC FTW),
which is over 40 years of wrist strain and no dates.
* 🌍 I'm based in United Kingdom
* 🖥️ See my portfolio at [My Website](http://www.gnramsay.com)
* ✉️ You can contact me at [seapagan@gmail.com](mailto:seapagan@gmail.com)
* 🧠 I'm learning Rust!
* 🤝 I'm open to collaborating on Python API's (specifically using FastAPI) and General Python backend and DevOps projects
* ⚡ I spent 27 years working offshore in the Oil & Gas sector working on (and then running) Seismic Survey vessels all over the world.
---
### Skills
My current languages of choice are Python, HTML/CSS etc, React, and Vanilla
Javascript, and I've just started to learn Rust.
---
### Current Projects
I'm currently actively working on a few projects, generally in Python,
including:
* [fastapi-template](https://github.com/seapagan/fastapi-template)
* A Configurable template for a FastAPI application, with Authentication and
User integration.
* [django-projects](https://github.com/seapagan/django-projects)
* A developers profile web page to show off your favourite projects. Each
project shows live GitHub stats. Uses Django, Tailwind, HTMX and Alpine.js
* [sqliter-py](https://github.com/seapagan/sqliter-py)
* A very lightweight Object-Relational Mapping (ORM) library for SQLite
databases in Python. This is in very active development right now and
lacking several main features. The use-case for this is more in CLI
applications and tools rather than web applications.
* [simple-toml-settings](https://github.com/seapagan/simple-toml-settings)
* A Python library to save your settings in a TOML file.
* [github-changelog-md](https://github.com/seapagan/github-changelog-md)
* Automatically generate a Markdown CHANGELOG from your GitHub Repository.
* [py-maker](https://github.com/seapagan/py-maker)
* A fully customizable Python application to bootstrap Poetry-based
boilerplate for you to start developing your Python applications quicker!
Includes linting and Pytest libraries.
* [lice2](https://github.com/seapagan/lice2)
* Generate license files for your
projects both as a standalone program and a python library. This is a fork and
continuation of the original `lice` project which has been abandoned for
several years, re-written in modern Python and with many new features.
* [A poetry plugin to check for 'yanked'
packages](https://github.com/seapagan/poetry-plugin-check-yanked)
* This also includes a GitHub Action to check this Automatically.
* [UPRN Tool](https://github.com/seapagan/uprn-mangle)
* Python script and API to take the raw 'AddressBase Premium' files from
Ordnance Survey and make something usable, stored in a PostgreSQL database.
The Frontend is written in ReactJs and allows fast searching.
* [fastapi-redis-cache-reborn](https://github.com/seapagan/fastapi-redis-cache-reborn)
* A simple and robust caching solution for FastAPI that interprets request
header values and creates proper response header values (powered by Redis).
This is another abandoned package that I have revived and made compatible
with modern Python and FastAPI, plus adding new features.
* [URL Shortener 2](https://github.com/seapagan/url-shortener2)
* URL Shortener Version 2. Rebuilt using my Fastapi-template project -
original version was based on a realpython.com tutorial, with additional
functionality
* [pyBlog](https://github.com/seapagan/pyBlog)
* Django-based Blog engine with Comments, Tags, Likes, Pinned Posts, WYSIWYG
Editing and more. Fully Responsive. This has been semi-abandoned for about 6
months, but I am planning to pick it up again soon.
* [poectrl](https://github.com/seapagan/shopping-list)
* A reasonably niche project to control the PoE ports on a Ubiquiti TS-8-PRO
Switch, with plans to support other models. I use this to automatically
control the power to my home/external CCTV cameras and switches.
* [django-rundevserver](https://github.com/seapagan/django-rundevserver)
* A Django Extension to run a configurable Django development server from the
command line
* [openapi-readme](https://github.com/seapagan/openapi-readme)
* Generate Markdown from an OpenAPI JSON spec file.
I have several repositories that are just to show off some techniques or
integrations, how to solve some problems with a specific library or framework,
or were used for me to learn a new technology.
* [fastapi-users-example](https://github.com/seapagan/fastapi-users-example)
* An example of how to use the `fastapi-users` package with FastAPI to create
a simple but full-featured user authentication system.
* [link-page](https://github.com/seapagan/link-page)
* A clean and basic landing page to show your homepage, github, social media
etc. Written using FastAPI and Jinja2 templates. This is an example of
how to use FastAPI and Jinja2 together.
* [fastapi-tui](https://github.com/seapagan/fastapi-tui)
* Using `Textual` to create a Text User Interface (TUI) for a FastAPI
application, allowing the logs to be viewed and the application to be
controlled from a TUI (Terminal User Interface).
* [FastAPI Async with SQLAlchemy2](https://github.com/seapagan/fastapi_async_sqlalchemy2_example)
* A Simple example how to use FastAPI with Async SQLAlchemy 2.0. At the time
(and still now to an extent) there were no good examples of how to use
version 2.0 of SQLAlchemy in Async mode with FastAPI.
* [uv-test](https://github.com/seapagan/uv-test)
* A test repo to investigate `uv` as a replacement for `Poetry` and `pyenv`
for me in my projects. This is a work in progress and needs updating with my
latest findings. My `sqliter-py` project is using `uv` as its build system
and i love it so far.
* [fastapi-jinja-websockets](https://github.com/seapagan/fastapi-jinja-websockets)
* A quick simple example to show using FastAPI and Jinja templates using
WebSockets to update an already served template.
* [capture-uvicorn-output](https://github.com/seapagan/capture-uvicorn-output)
* Example how to capture the output from a process in python, in this case
`uvicorn` to capture the output of a FastAPI application. This was
prelim-work for the `fastapi-tui` project.
* [github-contributions](https://github.com/seapagan/github-contributions)
* Example showing how to list a users contributions to **third-party** GitHub
repositories using Python and GraphQL, with a 'typer' CLI interface.
**Non-python** projects include:
* [bundlerepo](https://github.com/seapagan/bundle-repo)
* Pack a local or remote Git Repository into a single XML file for LLM
Consumption. Based on the idea of 'repopack', but written in Rust from
scratch.
* [lsplus](https://github.com/seapagan/lsplus)
* A `rust` project that is a vehicle for me to learn the language and the
ecosystem, which is a clone of the *nix `ls` command with some extra
features and blazingly fast compared to equivalent Python or Ruby
implementations I was using previously.
* [colored_text](https://github.com/seapagan/colored_text)
* A simple Rust library for adding colours and styles to terminal text.
Written as the current available alternatives were not quite what I wanted.
* [dev-portfolio-app](https://github.com/seapagan/dev-portfolio-app)
* A stand-alone React-based developers portfolio website, taking all data from
local JSON files and displaying live information about your Github
repositories (using their GraphGL API). Fully Responsive design.
* [mchdir (mcd)](https://github.com/seapagan/mchdir)
* A utility for creating a new folder then changing into it in one command, or
creating and changing into a temporary folder. Written in Rust and using
shell integration. I wrote this as doing `mkdir` then `cd` all the time was
annoying me. It is a very simple project, but I use it all the time. It's
also a decent example of how to integrate Rust with shell commands.
* [react-github-readme-button](https://github.com/seapagan/react-github-readme-button)
* A React component to display a Markdown-formatted README file in a modal popup
* [shopping-list](https://github.com/seapagan/shopping-list)
* Shopping list app using vanilla JavaScript only. This was a project to
learn how to use `localStorage` and to practice my JavaScript skills, and I
use it every day for my shopping list!
* [linux-comfy-chair](https://github.com/seapagan/linux-comfy-chair)
* Auto provision a new linux Ubuntu or Debian install with several coding
languages, scripting tools, docker and other handy items. I use this all the
time to auto-provision linux cloud or container instances. Written in
Bash-script, it is way overdue for a conversion to Rust!
* [update-repo](https://github.com/seapagan/update_repo)
* A Ruby Gem to keep a folder of multiple cloned Git Repositories up to date.
This was written many years ago when I worked offshore and had very limited
internet access. This was probably my first 'real' open-source project back
in 2016. I loved `Ruby` back then, but I have not used it for a long time
sadly. Python, you are a cruel mistress.
I have also written several plugins for `mkdocs`, and one reasonably popular one
for VSCode () that has
22k+ downloads.
Finally, for those who are interested, here are are my IDE and Editor settings:
* [NeoVim](https://github.com/seapagan/nvim-config)
* This is my current Neovim configuration, specifically tailored for Python
and Rust coding
* [VSCode](https://github.com/seapagan/vscode-setup)
* User and Programming language specific config files, extension lists, etc to
reproduce my current VSCode dev setup if needed. I tend to use NeoVim more
these days, but I still use VSCode for some projects.
### Socials
---
### My GitHub Stats