How to Architect Apps with Crowdbotics: A Guide for Builders

Concept art of mobile app construction

Welcome to Crowdbotics!

Whether this is your first or five-hundredth time architecting software, use this guide to start building with Crowdbotics. Our product is designed to help you get your app up and running as soon as possible, no matter how technical (or not) you are.

Assumptions

This guide assumes that:

  • you’re building an app completely from scratch, both frontend and backend
  • it’s a web or mobile app

Tech stack

Our standard stack uses Django for the backend and React/React Native for the frontend, as well as Crowdbotics hosting. ​​These are modern frameworks with widespread adoption, and we chose this specific stack in order to keep things simple and reliable. We believe in building with tried and trusted software.

Initializing the app

For mobile apps, you can start your app by clicking “Build from Scratch” and then selecting the Mobile App option, which will set up a frontend and backend for your app and put them into the same repo.

Screenshot of "App activity" section with appetize.io link
Screenshot of "App Activity" section with Appetize.io link


For web apps, click "Build from Scratch" and then select "Web App."

App Development Phases

The following procedure outlines the standard stages for building applications. In fact, it mirrors our own development process at Crowdbotics.

Phase 1: Plan the app

It’s helpful to have:

  • a list of screens.
  • a list of user roles.
  • a list of objects you will be tracking in the database models.
  • a list of expected actions users take on objects (typically, Create, Retrieve (list or show), Update (change), Delete.

Phase 2: Build backend, admin panel, user groups, and APIs.

Start by creating your backend data models and APIs and adding them to the admin panel. Data models are structures that describe the data that your app will collect and manipulate, and APIs are the means by which that data is accessed and transmitted.

How to build your app's data models

You can add data models to your app within the app dashboard’s “Models” view. The database section lets you add a list of models, specify fields for each model, and generate code with working APIs, database structures, and basic webpages.

Screenshot of backend data model editor in Crowdbotics
Screenshot of backend data model editor in Crowdbotics

You should assign fields to each model that describe what data the model tracks. You can pick reasonable choices for each field’s data type: string, characters, and so on. Enter all of your models. When you’re done, click “save” to save your models.

The backend (and built-in admin panel) is immediately deployable to the web just by clicking “Deploy App.” Credentials can be created and viewed from a widget within the app dashboard.

Your app is now live with a working backend and a placeholder frontend. You have the following four things available:

  • Admin panel containing all the models you created
  • Basic web views for all the models you created
  • User registration, user login, password resets
  • APIs for each model you created

Mobile apps are automatically emulated on Appetize.io for easy testing across different devices. The link to your emulated app can be found under "App Activity" in your dashboard.

Understanding the admin panel

An admin panel is a page that grants you high-level control of all of the major functions of your app. Crowdbotics generates terrific admin panels that have a lot of handy built-in features. Here’s what you can do out of the box:

  • Add and remove users
  • Reset passwords
  • Define which users have access to the admin panel (click the staff checkbox on a user’s account in the users list and save to give someone access)
  • Create user groups (click on Groups, or click on a user and click + to create a group)
  • Define which user groups have which permissions to access which models
  • View all database objects that you’ve created
  • Add and remove database objects individually

The admin panel is the easiest way to manage the items in your database, so we recommend interacting with your database exclusively through the admin panel.

Phase 3: Find frontend modules

Note: We plan to add a visual layout editor to Crowdbotics in mid-2020 to replace our current workflow. The following procedure is accurate at the time of publication, but it will soon be deprecated.

Once you’ve got the backend in place, you’re ready to go on to the frontend.
Crowdbotics lets you add prebuilt screens directly to the product. There are around 40 prebuilt screens in React Native alone, including the following list:

  • App loader
  • Auth screens: Login/Signup/Password recovery
  • Social screens: User profile/Profile settings/Notifications/Contacts/Feed
  • Articles Lists & Article details
  • Chat list/Chat details/Messaging/Comments
  • Dashboard
  • Walkthrough/Tutorial
  • Credit cards
  • Left nav
  • Grid nav
  • Settings

You can build your own modules from scratch, or you can start with a prebuilt screen that contains the functionality you want. Most functionality will have some basic screen you can build from. If not, there’s a “blank” screen choice as well that you can use.

You can drag and drop modules straight into your app.  This will copy the code into the app’s repo once you save the Storyboard.

Screenshot of Storyboard tool in Crowdbotics
Screenshot of Storyboard tool in Crowdbotics

Note that these screens are added to the codebase, but you may need to take additional steps to configure them. Each module’s code can be accessed within the "Commits" tab of the Activity widget on the App Dashboard.

Share your project

With these steps as a starting point, you’re well on your way to building apps rapidly with Crowdbotics. If you feel stuck, you can always get help from the Crowdbotics community, or you can work directly with a member of our expert development team.

Good luck, and happy building!

Originally published:

April 7, 2020

Related Articles