Introduction to Falcon Space

Смотреть видео

The main point  

The system allows you to create platforms and personal accounts with the ability to automate various processes of the enterprise. To create system elements, you need to know the basic layout elements in Bootstrap 4 and know SQL well.

90% of the system's functions are covered by using standard components and created stored procedures for the project. 10% - custom development for the project in separate areas. 

The basis of the system is a database on SQL Server 2016 with a web application based on technologies ASP.NET MVC & Bootstrap 4.

Workflow in the system

  • Defining roles in the system
  • Defining a page for each role
  • Defining declarative markup for each page using snippets of
  • components
  • Configuring components (creating/editing stored procedures)
  • Configuring access rights for pages and components

Main building bricks of the system

  • Pages - pages in personal accounts with the ability to add functionality via snippets of components. 
  • Tables - create any tables with sorting, filters, and column output. 
  • Forms - universal forms for adding/editing entities. 
  • Dashboards - the user's desktop in the personal account.
  • Metrics - output information of a certain sql report in tabular and graphical form.
  • Notifications - notifies users of important events in the system. 
  • Entities and statuses - movement through the statuses of certain request entities with a configurable set of statuses and fields. 
  • Catalog and filter - products and search with dynamic filters by catalog. 
  • Resources - managing images, documents attached to an entity
  • Universal API - a mechanism for integration with external systems.

Technical points

  • Try to create components gradually, starting with a simple working option, gradually adding details. You do not need to immediately make giant shapes and then try to understand why it is not output. 
  • Component customization is achieved by changing component settings via data tables, as well as by implementing its own stored procedures. 
  • IMPORTANT! Be sure to use snippets, and do not copy the markup from the documentation. When copying, quotation marks are interpreted incorrectly and the component does not pick up parameters. 
  • Stored procedures have a strict input and output contract. Be sure to use the corresponding similar examples and do not write stored procedures from scratch.
  • If possible, do not use workarounds and crutches (non-standard stored procedure, separate access verification function, etc.). Any non-standard solution makes it more difficult to support the project in the future. 
  • Names of stored procedure are generated automatically using subsystem prefixes and entity codes. Procedure names are based on the principle: {control}_{entityCode}_procedureName.In most cases, names are generated automatically. 
  • System forms are highlighted with a red border. Don't confuse it - you don't need to edit forms with a red border.
  • Do not use capital letters in the code fields (the code can be passed through the URL, and the URL is canonized in the lower-case view). 
  • In almost all stored procedures, the @username parameter is passed - it is based on this parameter that you need to check access to data for this user (there are sql functions with the sec_prefix to help you). 
  • When you delete an object, the stored procedures associated with it are not deleted. They can be cleaned if necessary via ManagementStuido.

Main types of stored procedure prefixes

  • as_-do not change these procedures, they are updated when the system is updated. 
  • falcon_ are some "system" procedures that can be changed in the project (for example, Search or GetLayoutInfo).
  • fm_ - requests for forms
  • crud_ requests for tables
  • dashboard_-queries for control panels
  • pg_crumbs-requests to get data for the page (title, breadcrumbs, redirects).
  • Test table prefixes tst_
Falcon Space is a functional web development platform on a narrow stack MS SQL/Bootstrap. Falcon Space Gettting started
Note