2005 Building Your First App
Building Your First App
Introduction
What You'll Build
- A database table to store contact information
- A list page to view all contacts
- A form page to add new contacts
- A details page to view individual contact information
- An edit form to update existing contacts
- Navigation between all pages
- Search and filter functionality
Planning Your Application
What Information to Track
For each contact, we'll track:
- First Name (required)
- Last Name (required)
- Email Address (required, unique)
- Phone Number
- Company Name
- Job Title
- Address (street, city, state, zip)
- Status (Active, Inactive, Prospect)
- Category (Customer, Partner, Vendor, Other)
- Notes
What Pages Needed
We'll create:
- Home/Dashboard - Overview with quick stats
- All Contacts List - Searchable table of all contacts
- Add Contact Form - Form to add new contact
- Contact Details - View complete information about one contact
- Edit Contact Form - Form to update existing contact
User Workflow
The typical user workflow will be:
- Land on home page with overview
- Click "View All Contacts" to see list
- Search/filter to find contacts
- Click contact to view details
- Edit contact if needed
- Or add new contact via "Add New" button
Step 1: Create the Application
Create New App
- Log into your Tadabase account
- From the dashboard, click "Create New App"
- Choose "Start from Scratch"
- Enter app name: Contact Manager
- Enter description: A simple contact management system
- Click "Create App"
Verify App Created
You should now see the builder interface with:
- Empty Data Builder (no tables yet)
- Empty Page Builder (no pages yet)
- App name in top bar
- Published app URL available
Step 2: Create the Contacts Table
Create Table
- Click "Data Builder" in left sidebar
- Click "+ Create Table"
- Enter table name: Contacts
- Enter description: Store contact information
- Click "Create"
Verify Default Fields
Your table now exists with default system fields:
- Record ID
- Date Created
- Date Modified
Now let's add custom fields!
Step 3: Add Fields to Contacts Table
Field 1: First Name
- Click "+ Add Field"
- Select field type: Short Text
- Field name: first_name
- Display name: First Name
- Check "Required"
- Click "Save"
Field 2: Last Name
- Click "+ Add Field"
- Field type: Short Text
- Field name: last_name
- Display name: Last Name
- Check "Required"
- Click "Save"
Field 3: Email Address
- Click "+ Add Field"
- Field type: Email
- Field name: email
- Display name: Email Address
- Check "Required"
- Check "Unique" (no duplicate emails allowed)
- Click "Save"
Field 4: Phone Number
- Click "+ Add Field"
- Field type: Phone
- Field name: phone
- Display name: Phone Number
- Required: No
- Click "Save"
Field 5: Company
- Click "+ Add Field"
- Field type: Short Text
- Field name: company
- Display name: Company
- Required: No
- Click "Save"
Field 6: Job Title
- Click "+ Add Field"
- Field type: Short Text
- Field name: job_title
- Display name: Job Title
- Required: No
- Click "Save"
Field 7: Street Address
- Click "+ Add Field"
- Field type: Short Text
- Field name: street_address
- Display name: Street Address
- Required: No
- Click "Save"
Field 8: City
- Click "+ Add Field"
- Field type: Short Text
- Field name: city
- Display name: City
- Required: No
- Click "Save"
Field 9: State
- Click "+ Add Field"
- Field type: Short Text
- Field name: state
- Display name: State
- Required: No
- Max length: 2 (for state abbreviations)
- Click "Save"
Field 10: Zip Code
- Click "+ Add Field"
- Field type: Short Text
- Field name: zip_code
- Display name: Zip Code
- Required: No
- Click "Save"
Field 11: Status
- Click "+ Add Field"
- Field type: Dropdown
- Field name: status
- Display name: Status
- Check "Required"
- Add options:
- Active
- Inactive
- Prospect
- Set default value: Active
- Click "Save"
Field 12: Category
- Click "+ Add Field"
- Field type: Dropdown
- Field name: category
- Display name: Category
- Required: No
- Add options:
- Customer
- Partner
- Vendor
- Other
- Click "Save"
Field 13: Notes
- Click "+ Add Field"
- Field type: Long Text
- Field name: notes
- Display name: Notes
- Required: No
- Click "Save"
Verify All Fields
Your Contacts table should now have all these fields. Take a moment to review them and ensure everything is correct.
Step 4: Add Sample Data
Add First Contact
- In the Contacts table, click "Records" tab
- Click "+ Add Record"
- Fill in the form:
- First Name: John
- Last Name: Smith
- Email: john.smith@example.com
- Phone: 555-0101
- Company: Acme Corporation
- Job Title: Sales Manager
- Street Address: 123 Main St
- City: New York
- State: NY
- Zip Code: 10001
- Status: Active
- Category: Customer
- Notes: Met at trade show 2024
- Click "Save"
Add More Contacts
Add at least 4 more contacts with different information. Here are suggestions:
Contact 2:
- Name: Sarah Johnson
- Email: sarah.j@techcorp.com
- Company: TechCorp Industries
- Job Title: CTO
- Status: Active
- Category: Partner
Contact 3:
- Name: Michael Chen
- Email: mchen@supplies.com
- Company: Office Supplies Inc
- Job Title: Account Manager
- Status: Active
- Category: Vendor
Contact 4:
- Name: Emily Davis
- Email: emily.davis@startup.io
- Company: StartupCo
- Job Title: Founder
- Status: Prospect
- Category: Customer
Contact 5:
- Name: Robert Martinez
- Email: r.martinez@consulting.com
- Company: Martinez Consulting
- Job Title: Senior Consultant
- Status: Inactive
- Category: Other
Verify Sample Data
You should now have at least 5 contacts in your table. This gives us data to work with when building pages.
Step 5: Create Home Page (Dashboard)
Create Home Page
- Go to "Page Builder"
- Click "+ Add Page"
- Page name: home
- Page title: Contact Manager
- Click "Create"
Add Welcome Text
- From left panel, drag "Rich Text" component to page
- Click the component to edit
- Enter text:
<h2>Welcome to Contact Manager</h2> <p>Manage all your contacts in one place. View, add, edit, and organize your professional network.</p>
- Save
Add Quick Stats (Optional)
You can add statistics components showing total contacts, active contacts, etc. For now, we'll keep it simple with just the welcome text and buttons.
Add Navigation Buttons
- Drag another "Rich Text" component below the first
- Add HTML for buttons:
<div style="margin-top: 20px;"> <a href="/contacts_list" class="btn btn-primary">View All Contacts</a> <a href="/add_contact" class="btn btn-success">Add New Contact</a> </div>
- Save
Note: These page links won't work yet since we haven't created those pages. We'll create them next!
Set as Home Page
- Click page settings (gear icon)
- Find "Home Page" or "Landing Page" option
- Set this page as the home page
- Save
Step 6: Create Contacts List Page
Create List Page
- Click "+ Add Page"
- Page name: contacts_list
- Page title: All Contacts
- Click "Create"
Add Table Component
- Drag "Table" component to page
- Component will appear on canvas
Configure Data Source
- In right panel, find "Data Source"
- Select table: Contacts
- Sort by: Last Name (ascending)
- Leave filters empty (show all)
Configure Columns
- In "Columns" section, select these fields:
- First Name
- Last Name
- Phone
- Company
- Job Title
- Status
- Category
- Arrange in this order (drag to reorder)
Configure Table Options
- Enable "Search" - lets users search across all fields
- Enable "Pagination" - set to 25 records per page
- Enable "Column Sorting" - users can click headers to sort
- Enable "Export to CSV" - users can download data
- Set component title: All Contacts
Configure Actions
- Find "Actions" section
- Enable "Add Record Button"
- Button text: Add New Contact
- Link to page: add_contact (we'll create this next)
- Enable "Row Click Action"
- Action: Go to page
- Select page: contact_details (we'll create this later)
Save Page
- Click "Save" in top right
- Page is now saved
Step 7: Create Add Contact Form Page
Create Form Page
- Click "+ Add Page"
- Page name: add_contact
- Page title: Add New Contact
- Click "Create"
Add Form Component
- Drag "Form" component to page
Configure Form Data Source
- Select table: Contacts
- Mode: Add New Record
Configure Form Fields
- In "Fields" section, select all fields:
- First Name (required)
- Last Name (required)
- Email Address (required)
- Phone Number
- Company
- Job Title
- Street Address
- City
- State
- Zip Code
- Status (default: Active)
- Category
- Notes
- Arrange in logical order (name fields first, then contact info, then address, then other)
Configure Form Layout
- Layout: 2 Columns (name fields side by side)
- Group related fields:
- First Name and Last Name in same row
- Email and Phone in same row
- City and State in same row
Configure Submit Settings
- Submit button text: Add Contact
- After submit action: Redirect to page
- Select page: contacts_list
- Success message: Contact added successfully!
- Enable "Reset form after submit" - allows adding multiple contacts
Add Cancel Button
- Enable "Show Cancel Button"
- Cancel button text: Cancel
- Cancel action: Go to page
- Select page: contacts_list
Save Page
- Click "Save"
Step 8: Create Contact Details Page
Create Details Page
- Click "+ Add Page"
- Page name: contact_details
- Page title: Contact Details
- Click "Create"
Add Details Component
- Drag "Details" component to page
Configure Details Data Source
- Select table: Contacts
- Record source: From URL (record ID will come from the URL when clicking from list)
Configure Details Fields
- Select all fields to display:
- First Name
- Last Name
- Email Address
- Phone Number
- Company
- Job Title
- Street Address
- City
- State
- Zip Code
- Status
- Category
- Notes
- Date Created
- Date Modified
- Arrange in logical groupings
Configure Layout
- Layout: 2 Columns
- Group fields into sections:
- Contact Information (name, email, phone)
- Company Information (company, job title)
- Address (street, city, state, zip)
- Classification (status, category)
- Notes
- System Info (dates)
Add Action Buttons
- Enable "Show Edit Button"
- Edit button text: Edit Contact
- Link to page: edit_contact (we'll create this next)
- Enable "Show Delete Button"
- Delete confirmation: Yes
- After delete: Redirect to contacts_list
- Add "Back Button"
- Back to: contacts_list
Save Page
- Click "Save"
Step 9: Create Edit Contact Form Page
Create Edit Page
- Click "+ Add Page"
- Page name: edit_contact
- Page title: Edit Contact
- Click "Create"
Add Form Component
- Drag "Form" component to page
Configure Form Data Source
- Select table: Contacts
- Mode: Edit Existing Record
- Record source: From URL
Configure Form Fields
- Select same fields as add form (all contact fields)
- Arrange in same order as add form for consistency
- Use 2-column layout
Configure Submit Settings
- Submit button text: Update Contact
- After submit: Redirect to page
- Select page: contact_details (return to details view)
- Success message: Contact updated successfully!
Add Cancel Button
- Enable cancel button
- Cancel text: Cancel
- Cancel action: Go back to previous page
Save Page
- Click "Save"
Step 10: Create Navigation Menu
Step 11: Test Your Application
Access Published App
- In builder, find published app URL in top bar
- Click to open in new tab
- You should see your home page!
Test Complete Workflow
Go through each function:
- Home Page
- Verify welcome message displays
- Click "View All Contacts" button
- Contacts List
- Verify all contacts display in table
- Test search (search for a name)
- Test column sorting (click headers)
- Click a contact row
- Contact Details
- Verify all information displays
- Click "Edit Contact" button
- Edit Contact
- Modify some fields
- Click "Update Contact"
- Verify you return to details with updated info
- Add New Contact
- Use menu to go to "Add Contact"
- Fill out form with new contact
- Submit
- Verify you return to list with new contact visible
- Delete Contact
- Open a contact's details
- Click delete button
- Confirm deletion
- Verify contact is removed from list
- Navigation Menu
- Test all menu items
- Verify navigation works from any page
Understanding the Complete Workflow
Data Flow
- Data Table stores all contact information
- Form Components add and edit records in the table
- Table Component displays multiple records from the table
- Details Component displays a single record from the table
- All components interact with the same underlying data
Page Navigation Flow
- Home → Links to list and add pages
- List → Click row goes to details, click "Add New" goes to add form
- Details → Edit button goes to edit form, back button returns to list
- Edit Form → Submit returns to details, cancel returns to previous page
- Add Form → Submit returns to list with new record
How Record ID Works
When you click a contact in the list:
- The URL includes the record ID:
/contact_details?id=123 - Details page reads the ID from URL
- Details component fetches that specific record
- Edit button passes same ID to edit form
- Edit form loads that specific record's data
This is how Tadabase connects list views to detail views and edit forms!
Form Submission Flow
- User fills out form fields
- Tadabase validates required fields and data types
- On submit, data is saved to the table
- Success message displays
- User is redirected to specified page
- Table components automatically show updated data
Enhancements and Next Steps
Add More Features
- Search Page - Dedicated advanced search page
- Reports - Charts showing contacts by category, status
- Export - Bulk export contacts to CSV
- Import - Import contacts from spreadsheet
- Filters - Quick filter buttons (Active only, Customers only, etc.)
Improve User Interface
- Styling - Customize colors and fonts to match your brand
- Images - Add profile photos for contacts
- Icons - Use icons in navigation and buttons
- Better Layout - Organize form fields into tabs or sections
Add Related Tables
- Companies Table - Separate table for company info
- Activities Table - Track interactions with contacts
- Tags Table - Add tags to categorize contacts
- Link these tables using relationships (Phase 2 topic)
Add Automation
- Email Notifications - Send email when new contact added
- Auto-Assignment - Automatically assign contacts to users
- Reminders - Set follow-up reminders
- (These are Phase 4 topics - automation and rules)
Troubleshooting Tips
Page Links Don't Work
- Verify page name is spelled correctly in link configuration
- Check page exists and is saved
- Ensure page is not set to "hidden"
Details Page Shows No Data
- Verify details component is set to "From URL"
- Check that table component has "Click Action" configured
- Test by manually adding record ID to URL:
?id=1
Form Won't Submit
- Check all required fields are filled
- Verify email format is correct
- Check for validation errors (red text)
- Ensure submit action is configured
Table Shows No Data
- Verify table component is connected to Contacts table
- Check that table has records in Data Builder
- Remove any filters that might hide records
- Ensure columns are selected for display
Menu Doesn't Appear
- Check menu is enabled in app settings
- Verify menu items are added and linked
- Refresh browser cache
What You've Learned
- How to plan an application before building
- Creating a data table with appropriate field types
- Adding and managing records
- Creating multiple page types (list, form, details)
- Configuring table components with search and sorting
- Configuring form components for add and edit
- Configuring details components to display records
- Linking pages together for navigation
- Creating a navigation menu
- Testing the complete workflow
- Understanding how data flows through components
Next Steps
Next: Phase 1 Summary and Project - Consolidate Your Learning
Hands-On Exercise (To Be Added)
Exercise placeholders will include:
- Build the complete Contact Manager following all steps
- Add at least 10 contacts with complete information
- Test every feature thoroughly
- Customize the styling and layout
- Add additional fields based on your needs
- Create filter buttons on the list page
- Add export functionality
- Share your published app URL with someone for testing
Knowledge Check (To Be Added)
Quiz questions will test understanding of:
- Why we create multiple pages in an application
- How record IDs are passed between pages
- Difference between add form and edit form configuration
- How to configure table component click actions
- Form submission and redirect workflow
- Best practices for organizing pages
We'd love to hear your feedback.