Osm Admin: Osm Admin Backlog
2 years ago ∙ 1 minute read
2 years ago ∙ 1 minute read
2 years ago ∙ 2 minutes read
The goal is to be the most productive and focused on the most important things, both personally, and (later) as a team.
After maintaining the "done" log for several months, I decided to improve my estimation accuracy, and here is how.
2 years ago ∙ 1 minute read
2 years ago ∙ 1 minute read
Before diving into what should be in the docs, let's define what you should more or less know before using Osm Admin.
There are four types of people who will read the docs: power users, developers, vendors and contributors.
2 years ago ∙ 1 minute read
Here are my thoughts on product backlog and roadmap.
2 years ago ∙ 2 minutes read
I waited for this day too long. Today, I've tried out GitPod, and made it work for a project based on Osm Admin.
2 years ago ∙ 2 minutes read
Today, I reiterated on what's left in this iteration, and finished the side menu view, and created a trivial home page for the admin area.
2 years ago ∙ 2 minutes read
After getting the main branch all-green (tests pass, CLI and UI works as expected), I decided that from now on, I'll keep it always green, and use feature branches for all major development.
Then, I started implementing the main menu of the admin area.
2 years ago ∙ 1 minute read
Yesterday, I created a template for new projects powered by Osm Admin.
This way, you can create and publish a project in minutes, just follow the README
. Yay!
2 years ago ∙ 3 minutes read
I came with an idea of much cleaner Osm Admin data class "markup", and more straightforward architecture, and I decided to give it a go in a separate experimental branch v0.2
, and to see if it's viable.
After three weeks of implementation effort, I can say that it is viable, and it's so much better! And it's not a completely new effort, I mostly copy code from v0.1
and some parts of osmphp/framework:old_v4
, and adapt it.
You can already define data classes using new markup, generate the database tables, and query it using new formula syntax. I really wanted to come with some UI working, but there wasn't enough time for that. It stays my priority for the next iteration.
2 years ago ∙ 2 minutes read
My current goal is to get some minimum Osm Admin user interface and API working - just for one property, one data type, one UI control type, and then improve.
And there is a lot of space for improvement. The main areas are listed in this document.
I'd really appreciate a helping hand, so if you are into this sort of things, DM me on Twitter.
2 years ago ∙ 4 minutes read
I feel that both attributes decorating data classes, and object model parsed from it are too complex.
Let's have a fresh look at Osm Admin. If I had to start from scratch, how would it be?
2 years ago ∙ 2 minutes read
Last two weeks were about implementing initial version of an Osm Admin grid, integrating it seamlessly with the editing form, and enabling mass-editing of multiple objects.
After finishing it, I realized that Osm Admin had become bigger than Osm Framework! To keep up, I started writing docs for it.
And now, you have a step-by-step guide for creating a project, adding Osm Admin to it and a practical example of an admin area that you can copy to your project and try it out locally.
2 years ago ∙ 2 minutes read
Recently, I implemented mass-editing in Osm Admin. It allows you to view and edit multiple objects in a single operation.
This article describes mass-editing of products in a typical e-commerce application.
2 years ago ∙ 3 minutes read
The last 4 weeks were mostly a vacation. It's been a time for reflection, but still, I delivered some new features.
In Osm Admin, forms already allow creating new objects and saving them to the database, and editing one or several existing objects.
I've also implemented URL query filters that are applied to the underlying database query and that can be displayed in the user interface.
From now on, Osm Framework and all projects built with it - can be installed and developed under Apache and on Windows.
2 years ago ∙ 3 minutes read
In the user interface, you can narrow displayed data using grid column filters, or filters displayed in the sidebar. To enable that, apply #[Filter\*]
attributes to class properties.
Applied filters appear in the URL query parameters, for example, .../edit?id=5+16+19
, and on the page.
You can apply filters not only to a grid page, but also to a form page - to mass edit all matching objects, or to an action URL (edit, delete, or custom) - to perform the action on all matching objects.
In the same way, you can apply filters to the API URLs in order to retrieve or modify matching objects in a script.
3 years ago ∙ 2 minutes read
The project repository, osmphp/admin
, follows a typical Osm Framework-based project structure. However, this repository is going to be a reusable Composer package, and has important structural differences presented in this article.
3 years ago ∙ 2 minutes read
This article introduces the core project concepts: data object, data class, data query, and data schema.
3 years ago ∙ 1 minute read
I'm super-excited to announce that I'm starting a new project codenamed "The Big Red Button". It's about defining application data structures and logic in PHP code, pressing the big red button (hence the codename), and getting fully functioning Admin Panel and API.
3 years ago ∙ 1 minute read
This sprint was dedicated to writing Osm Framework documentation, and indeed, there are 8 new in-depth documentation articles, 4-5 minutes long each.
Despite documentation focus, I kept improving the website. From now on, you can assign a canonical URL to a blog post or a documentation page, and use GitHub friendly relative URLs in documentation.
But the most important thing - I started sharing progress and insights daily on Twitter.
2021 ∙ October ∙ Osm Framework
3 years ago ∙ 1 minute read
Throw the NotImplemented
exception in any code path that is not implemented yet, and configure the debugger to stop there whenever the code path is executed.
3 years ago ∙ 4 minutes read
osm.software
website. From now on, Osm Framework documentation resides in the docs/
directory of the osmphp/framework
repository, and it is displayed in a separate section of osm.software
website. New data source indexing engine allows running complex interdependent data synchronization with a single command, osm index
. New Placeholder
class simplifies dynamic Markdown content generation.
Osm Framework. Apply dynamic traits within the same file using #[UseIn]
attribute. Implement fast dynamic routing using new DynamicRoute
class. Generate URLs using new $osm_app->base_url
property.
2021 ∙ August ∙ osm.software Website
3 years ago ∙ 1 minute read
Install PHP 8, MySql, Node, Gulp and ElasticSearch. Clone the project. Edit project settings. Finally, run few commands in the command line.
3 years ago ∙ 3 minutes read
New Osm Framework version comes with improved, configurable and easily
customizable Gulp script, modular NPM dependencies, standard page layout Blade
component and brand new README
. osm.software website
contains an easy-to-follow new project installation instruction.
3 years ago ∙ 1 minute read
This article describes how we use GitHub issues and projects, both for new development and for support.
2021 ∙ August ∙ Osm Framework
3 years ago ∙ 1 minute read
Install and use osm
, osmc
, osmt
and osmh
command line aliases for faster command typing.
Note. This post is moved to Osm Framework documentation.
2021 ∙ August ∙ Osm Framework
3 years ago ∙ 1 minute read
Once PHP 8, Node and Gulp are installed, create new projects quickly using the command line.
Note. This post is moved to Osm Framework documentation.
3 years ago ∙ 1 minute read
The first osm.software blog articles have been written, edited and revised. Content changes are deployed in semi-automated way. The website got some SEO improvements, and now it scores 100% in Google Lighthouse.
2021 ∙ May ∙ Osm Framework
3 years ago ∙ 4 minutes read
Full-text search and layered navigation is a common feature for e-commerce applications. It's also used in this blog. Actually, it makes browsing any non-trivial data better. Under the hood, search and layered navigation interact with ElasticSearch, or other search engine, and this article describes how.
Note. This post is moved to Osm Framework documentation.
2021 ∙ May ∙ osm.software Website
3 years ago ∙ 3 minutes read
This article explains how to write and publish blog posts.
2021 ∙ May ∙ Osm Framework
3 years ago ∙ 3 minutes read
Osm Framework is an open-source, insanely fast, unprecedentedly extensible, and fun to work with PHP 8 framework for creating modern Web applications. It's built on top of tried and tested Symfony and Laravel components.
Note. This post is moved to Osm Framework documentation.