Hydra
Hydra is an app generator designed to put app development in the hands of everyone.
Description
Hydra is a app generation tool with resulting source code. Generated front-end support for Ionic/Angular. Restful service layer support for .NET Core. Back-end support for SQL Server. Other supported technologies coming soon as Hydra is highly extensible. Also includes support for mobile capability, Docker, Helm, Azure Devops, and Kubernetes.
It serves as app generator for those who want to own and control the source locally.
Current Features
How it Works
Most everything in life is naturally hierarchical, your family, your work organization, data relationships,
user interfaces, security models, etc. Hydra starts with what is called a "business model". Business models are broken
into the following levels: stakeholders, organizational units, roles (people and systems), responsibilities (or features - for systems),
tasks, and data items. Once you get to the data item level, then you can define the detail that results in properties of entity models,
columns in database tables, and elements on a screen.
Most rapid application development generators are designed for end users that have no concept of development best practices. Hydra is
different in that it is designed with the developer in mind. It results in source code utilizing preferred coding styles, readability,
design patterns, and code quality. It doesn't end there. Hydra is highly extensible, allowing for generator participation, interface driven
extensions, and even full control UI, business logic, and servicing. It aims to remove the 80% of application development that is repetitive,
dull, and drone. It does this while at the same time, allowing for creativity and full autonomy.
Help
System Requirements
- Windows 10 or higher
- NodeJs (for npm)
- Windows Build Tools (dotnet, MSBuild, etc) for development
- Hydra App Generator Windows Cli (downloadable through the npm Hydra installation package)
- Preferred though not required: Visual Studio or VS Code
Razor Syntax
@using Ripley.Entities
@using AbstraX
@model EntityModel<Post>
@{
Layout = "_Repeater.cshtml";
ViewBag.VirtualScroll = true;
ViewData["Title"] = "Posts";
var media = Model.CreateScriptObject<PostMedia>();
var user = Model.GetLoggedInUser<User>();
}
@section ItemTemplate
{
<div>
@* relies on the facet handler on the entity or entity property *@
<@Model.Entity.Predicate />
@* creates a binding to an element in the view to code *@
<ion-input formControlName="@Model.Entity.TimeStamp" type="text"></ion-input>
@* create an element with script *@
<input type="file" id="files" name="files[]" multiple onchange="handleFileSelect($event)" />
@Html.Partial("PostFeedback", Model.Entity.PostFeedbacks, new ViewDataDictionary(this.ViewData) { { "counter", 1 } });
</div>
}
@section CustomScripts
{
<script>
handleFileSelect(evt : Event) {
let files = evt.target.files;
let output = [];
let @media;
let @user;
for (let i = 0, f; f = files[i]; i++) {
@media.FileContents = f.readAsBinaryString();
@media.FileName = f.name;
@media.User = user;
@Model.Create(media);
output.push('<li><strong>', escape(f.name), '</strong> (', f.type || 'n/a', ') - ',
f.size, ' bytes, last modified: ',
f.lastModifiedDate ? f.lastModifiedDate.toLocaleDateString() : 'n/a',
'</li>');
}
}
</script>
}
Known Issues
Hydra is a "work in progress". Please be patient as stability evolves.
Installation Instructions
Please visit the installation page here:
Installation
Related Resources
Visit: http://www.cloudideaas.com/hydra
Enjoy!