Welcome to codespirals
In an endless spiral, we close in on the perfect code. With each iteration we seem to get closer, yet we can never reach it. Such is life.
Codespirals is a small software company from Switzerland that attempts to create a solid foundation of code libraries and modules to build interesting and helpful projects on top of.
Libraries:
About
A codespirals library module is a set of mostly abstract code made for a specific purpose, which is usually described by the module's name and README.
Structure
Codespirals libraries usually contain anywhere from one to all of the following submodules, depending on size and scope:
Shared
Collections of interfaces that dictate the outline and behaviour of objects
Frontend
A set of classes and interfaces building upon the "Shared" package to facilitate the use of the module in a frontend application. This may include Blazor components.
Backend
Extensions, additional interfaces and functions utilizing the existing interfaces from the "Shared" package to facilitate adding the module to a project's EF Core database and generally using it in backend code.
Solutions:
Solution modules are next-to-fully implemented programs that can be attached to other projects to expedite frequently required functionalities like payment processing or mailing.
Structure
While largely unique to the individual solution, most share a few commonalities (though they are not required to):
Options Model
A class that contains all the options that can be individualised in a project, which are required to use the solution. This is a POGO class that mirrors the options set in the appsettings.json file (or similar).
Services
A set of [...]Service classes and interfaces that implement the functionality of the solution, which can be used via dependency injection.
App builder extension
One or more methods to add the solution to the IServiceCollection and IApplicationBuilder (usually in the Startup.cs file). If the solution contains only a single service, this is usually omitted.
Various Models and Exceptions
The simple models and exceptions that make sure the solution is as self contained as possible but can be properly interacted with by implementing projects.
Current generic codespirals libraries:
- Base - A few basic interfaces that simplify some basic actions and classes. ☭🔑 Progress: -%
- Api - A set of extensions and code to streamline building an API. ☭🔑 Progress: 40%
- Users - Unified user handling for smaller projects. ☭🔑 Progress: 80%
- Search - A set of interfaces and extensions to facilitate searching through lists. ☭🔑 Progress: 99%
- Common - A collection of frequently used items like currency, money, languages or countries ☭🔑 Progress: 99%
Codespirals solutions:
- Pay - Services to facilitate processing payments. ☭🔑 Progress: 60%
- Mail - A service to very easily implement mailing in any project. ☭🔑 Progress: 90%
- ApiCaller - A small service to standardize calling an API from code. ☭🔑 Progress: 95%
- Scheduler - A package to easily add a task scheduler to a project. ☭🔑 Progress: 80%
Projects these modules are used in:
Misc
Symbols
- ☭ - completly open source. free to fork, modify and use for anyone however they wish
- 🔓 - open source, but with an attribution licence
- 🔑 - private until fully tested and released
- 🔒 - private with no current plans to release publicly
Sources
- 🕮 - Perfection