Chasing Project Crowd
Ever wondered what it takes to build an app using Crowd Machine? Our friends at Project Crowd, the next generation freelance recruitment community, developed and built their business application on the Crowd Machine platform. You can follow their step-by-step journey in this new blog called “Chasing Project Crowd.”
Post 01 | May 8th 2019
Meet Project Crowd
Hello, we are Kathrin and Dennis Hauck, the founders of Project Crowd!
Welcome to our personal app development journey!! Buckle up and grab your popcorn as we explore how our team turned a great idea into a digital reality, using Crowd Machine’s No Code Platform – truly the fastest way to design, develop, & deploy sophisticated applications, without coding! During our journey, live from Germany, we will give you a first hand look inside exactly how we used Crowd Machine’s technology to revolutionize the freelancer market with our next-generation recruitment application, empowered by AI and set to run on the blockchain!
Post 02 | May 15th 2019
WHAT DO YOU WANT THE APP TO DO?
The first step in actually building the app is defining the processes that need to be built and the requirements resulting from it. This means laying out what we want the app to be able to do – and to define what we want the app to accomplish, not only from our perspective, but also from the user’s perspective. Fortunately Crowd Machine’s App Studio emphasizes putting the user experience at the core of your app development.
Functional requirements are the pieces of functionality that are needed in your app so that it can meet its goals. We are documenting them as user stories, so the developer gets a good understanding of the app. One of the biggest challenges is to communicate the details of the app to various developers and this is a very effective way of doing it.
Project Crowd uses functional requirements in terms of blockchain because it enables trust – and trust is a key attribute in recruitment and hiring, including verification of data, verification of career records, creation of smart contracts, and payments.
To get an impression on how functional requirements can be described, we show some of them here:
- The homepage is SEO optimized
- The User Interface looks as good as Crowd Academy’s UI.
- The freelancer can register on the platform (freelancer account)
- The enterprise can register on the platform (enterprise account)
- The user can enter the personal data after the registration
- The user enters the dashboard after sign in
- The user can choose the platform language (English / German)
- New languages can be added easily at a later point of time
- The user can navigate through the main navigation on the top of the page and via burger menu on the top right corner
- The user can enter and change personal details in the settings
- The freelancer can enter career details in the settings
- The freelancer can send verification requests for each career step
- The freelancer can enter working conditions
- The freelancer can search for a project:
- – remote / on-site
- – language
- – skills
- – project duration
- – location
- The freelancer receives job matches via the Artificial Intelligence (“AI”) Job Matching A.M.I.
- The freelancer receives the matches on the “My matches” page
- The enterprise receives freelancer matches via A.M.I
- The enterprise receives the matches on the “Matches” page
- The career history data can be verified easily, the hashes will be stored on blockchain
Post 03 | May 28th 2019
Data Structures & Packages
Once you have the application structure planned, you can begin to build the foundational pieces of your App. At the most basic level, the function of any App is to take data, process that data, and then produce an output specific to the application’s purpose.
The data structure stores all the information that an application uses. The data structure will need to support the application’s functionality. Crowd Machine Apps use a data structure known as a “Data Package” for storing data. Crowd Machine has the ability to consume data from external sources, including those in a public or private cloud, or create new internal data structures.
A Package is like a database table, and it stores data. Packages are combined or linked to create composite models of data across business systems that more accurately resemble the individual enterprises’ business needs. This enables accelerated business solution innovation by abstracting away the limitations of existing legacy data structures and systems. Where Packages are defined to represent a new data structure, Crowd Machine creates the schema definitions and establishes relationships and indexes based upon the way in which the Packages are combined. This level of automation ensures data integrity and optimal system performance, removes the burden of data management, and eliminates a source of errors and debugging.
The Data Structure for Project Crowd stores various information about the different users on the platform.
- Freelancers add data about their career history and conditions, while companies add data about their projects. For example, we have one Data Package for the project history of the freelancers, the former employments, and the certificates that have been achieved.
- Company data needs to be stored in Packages like Project Contacts, Requirements and Company Data.
- Apart from specific information related to freelancer or company, Packages that contain generic information such as languages, platform navigation, or integrations have been defined.
A good way to design data structures and keep track of the data flow is to graphically draw a relationship diagram in one of the different tools that are available.
Post 04 | June 5th 2019
Making the Application Work
Patterns, Activities and Packages Replace Code
We build out applications by creating Patterns that contain one or more Activities. All apps exhibit behaviors, where each behavior represents some form of functionality. In traditional app development, developers interpret requirements and then write lines of code in a development environment to implement functionality. The Crowd App Studio is different, it allows developers to model behaviors as a Pattern, rather than writing code. Patterns are a diagrammatic presentation of logic that represents an app requirement and are composed of one or more activities.
Crowd Machine uses activities in order to manipulate, display and report on packages and their underlying data. An activity is represented by an icon. Activities are single operations and can be run independently in a pattern, or in sequence with other activities to form a Pattern Flow. Activities act to reduce the amount of effort required to create functionality in an app. Because applications require different types of behavior to function, there are a number of different types of activities that can be used in a pattern to provide functionality.
Crowd Machine Apps process data and produce outputs using Patterns. A Pattern contains one or more Activities and is similar to a workflow or storyboard of actions that perform tasks within an application. Patterns can be run individually or in conjunction with other patterns, to form an application. Folders are a useful way to group patterns by category. Permissions can be set to a specific pattern or a folder to control access. The unique approach removes the requirement to understand any form of computer language or the traditional intricacies of app development and accelerates the pace of app delivery by removing the development and unit testing steps of the app lifecycle, allowing a developer to go directly from requirements to user acceptance testing.
Activities are added to the Pattern Flow via drag and drop. Activities can be joined together using links. Links allow unlimited ‘if-then-else’ type logic to be applied. Crowd Machine’s natural expression logic alleviates the need to understand a computer language. There are 6 activity types, and each (except Launch Pattern) require a data definition prior to allowing activity properties to be configured. This means that data packages need to be added to the activity, and then the settings defined for how the activity will act on the Package(s). By defining the properties, an Activity will function in the Pattern as instructed.
So first, we transfer a Package into an Activity and then define the Activity behavior.
Once a package is transferred into an activity, we define how an activity alters and retrieves package data. By defining an Activity we are configuring it to act on the Package (that we transferred in) to produce a type of behavior in the application.
In the Crowd App Studio, each step is drawn out and linked.
For Project Crowd, we structured the Patterns in Folders according to user logic and additional sections for system admins and the handling of Patterns.
Every Folder has a Sub-Folder Structure according to functionalities within the app.
These Sub-Folders contain the Patterns that are defining the Workflow within the app. In this example one UI Action leads to the next one.
Defining a Package means adding a variety of Attributes into the Package. This data structure is available within the workflow you are designing by adding it to a Pattern and defining relationships to other Packages.
The more complex your app is the more Packages will be needed to add and manage the data in your app. So make sure you are working with your data model to ensure you keep on track with your data.
Post 05 | June 18th 2019
Creating the User Experience (UX) & User Interface (UI)
UX refers to the User Experience which encompasses all aspects of the end-user’s interaction with an App. For Project Crowd, the UX involves the way a freelancer or company navigates from the Project Crowd homepage to the Projects Page as well as how projects, freelancer, and company data and information is presented and experienced.
UI refers to the User Interface. It is the series of screens, pages, and page objects, such as buttons and icons that a user sees on the device, whether it is a desktop, tablet, or mobile device, that is running your App.
When using Crowd Machine technology to design an application’s User Interface, app creators use the Page Designer. Page Designer is Crowd App Studio’s workspace for designing the app’s UI, which provides a canvas with drag and drop functionality to create page objects and other elements that are needed for a page layout.
The Page Designer workspace consists of several elements, each with its own function. For example, the layout element provides different options for different-sized screens (i.e. desktop, tablet, mobile). The design canvas in the center of the workspace represents an application’s page layout. The Page Designer allows you to set up the page by selecting a theme and once a theme is selected from the drop-down menu, the corresponding page objects display below it.
You are able to choose from a long list of page objects, which can be styled to achieve the sought-after look. There are many page objects to choose from including: containers, headings, subheadings, body text, images, hyperlinks, tables, tabs, file uploads, drop-down menus, videos, as well as several types of buttons with various functions (cancel, click, checkbox, submit, delete).
An application designer will start a page design by adding containers to the Page Body. Containers are a good way of storing page elements. A typical application page may have three containers, one for a page header, one for the page body, and one for a footer. Page objects and data definitions are then added to the containers. Page objects are easily added to the design canvas using drag and drop, and aligned using the page grid and ruler. Once you drag a page object onto the canvas, the style tab is used to manage the page object’s properties or display characteristics.
A User Input Activity provides an interface for users to interact with an application. Once an activity has been defined, the Crowd App Studio automatically creates a default set of data objects that display as buttons and other page objects. The Page Designer provides the tools to customize a UI Activity and is used for designing interfaces for UI Activities and Portals.
Data Packages are added to the UI activities by clicking on a package attribute, after which the application designer can adjust its properties and style or reuse it in other locations.
Project Crowd’s UI goal is for it to be as awesome as Crowd Academy’s UI. Therefore, we needed many, many different containers, pictures to be used as background, the logo in image objects, different layers, repeaters – especially for the freelancer career history, but also pages like the FAQ page. Not to forget the famous spinner buttons- Each of these uses one container, two buttons and the animated spinner icon.
To give the UI the certain something we are using different rules, for example to show and hide page objects depending on what the user needs to see, or to change the color of buttons on certain events.
The UI needs some patience and a sense for details. But the great thing is – you see the result of every little detail you are adding, every pixel you are changing and every icon you are adding.
Post 06 | July 10th 2019
User Acceptance Testing
Yep, we are getting close!
That is the amazing thing about the Crowd App Studio – the ability to rapidly go from Requirements to User Acceptance Testing! Crowd App Studio uses a three stage development model, dramatically speeding up the app development lifecycle and delivery of your app to market.
During UAT, otherwise known as Beta, Application, or End-User Testing, actual application users test the app to make sure it can handle required tasks in real-world scenarios, according to specifications, correcting any defects which may be discovered. It’s the closest thing to a “real world” test available. It gives users the chance to interact with the app and find out if everything works as it should, whether any features have been overlooked, miscommunicated, not communicated, and so on. The goal of User Acceptance Testing is to assess if the system can support day-to-day business and user scenarios and ensure the system is sufficient and correct for business usage.
As we have seen during our Project Crowd journey, the Requirements are specified in the Crowd App Design Studio, incorporating a holistic, zero code approach to the Data, Process, Logic, and UI layers of an application, allowing for rapid prototyping. Once the developer specifies a solution in Crowd Machine, a functioning solution results, and is ready for User Acceptance Testing. As a result, a properly functioning app is delivered to market at unprecedented speeds.
Project Crowd will be starting the User Acceptance Tests later this year, we will be ensuring that the system functions as intended, and that we have not overlooked anything. Every requirement that has been defined as explained in post #2 has to be met, so this is where it will all come together!
Testing, 1, 2, 3…..Stand By!!