trailblazer-community-group-package

Salesforce app for managing Trailblazer Community Groups.

First up, let's be clear, this is a work-in-progress project.

I'm also going to be using it to hopefully be the basis of blog articles/talks on how an app on Salesforce can be built. A case-study if you will. I'll be trying to use this README (or potentially other pages) to document the journey also.

Requirements

  1. 2GP Support
  2. OSS
  3. CI/CD
  4. No real data to be stored in git repo
  5. Backup/restore support

Features

MVP

Initial MVP features will be those included in the first packaged (unlocked or managed, I'm usure which yet). These features will generally be the ones that I personally believe will (mostly) meet with parity of the current non-SF tools I use in organising our TCG (Trailblazer Community Group)

  1. Track planning and execution of events
    1. Presentations
    2. Speakers
    3. Sponsorss
    4. Recording links
  2. Store (potential) sponsors details 1.Track prizes

Roadmap & Other ideas

  1. Event listing and stage (kanban)
  2. Calendar View
    1. Show entries/clashes from google calendars / Trailblazer Community / Salesforce events
  3. Sponsor Management
    1. Last time sponsored
    2. Notes on venue
    3. Contacts
    4. Sponsored amounts / prizes
    5. Opps
  4. Talks
    1. Potential
    2. Tags / Topics
    3. Last time a topic was spoken about
  5. Task mangement (e.g publish event, confirm speakers, etc)
  6. Dashboard
    1. Members
      1. Bevy
      2. YouTube
      3. TCG
      4. Chatter
      5. Twitter
    2. Next event(s) status
  7. Quiz Integration
  8. Backup / Restore
  9. Speakers
    1. Basic details etc
  10. Track prizes
    1. Cert vouchers etc
  11. Knowledge
  12. Email to case?
  13. Bevy Integration
    1. Crawl?
    2. Event
      1. Import / Read
    3. Check-ins
  14. Mobile App
    1. Check-ins
    2. For organisers
    3. For Community
  15. Slack integration
  16. Quip Integration
  17. Support for Community Conferences as well
  18. Git Actions
    1. Create/Version diagrams when version released

Architecture

ERD

ERD

  • The IFK__c field above is used as an external ID - used by the data impoty/export plugin I've written

Settings

  • Success Group Link
  • Bevy Link
  • YouTube Link
  • Twitter Handle
  • Twitter hashtag
  • Calendar Feeds - for list calendar feeds (e.g. google calendar) to display in the calendar

Assumptions

  1. Not concerned with custom object limits
  2. App will be run in a pretty much standard Developer edition org.

Development

To work on this project in a scratch org:

  1. Set up CumulusCI
  2. Clone this project and move to its directory.
  3. Run cci flow run dev_org --org dev to deploy this project.
  4. Run cci org browser dev to open the org in your browser.

Diagrams

This project uses PlantUML for it's diagram generation from src. In VS Code I have been using this extension with the following workspace settings

{
    "plantuml.diagramsRoot": "docs/diagrams/src/",
    "plantuml.exportOutDir": "docs/diagrams/",
    "plantuml.exportSubFolder": false
}

Journal

Open Questions

  1. Which devhub should/can be used for a project like this?

17th May 2020

  • Formulated initial ERD - note the one above is the latest erd - and although all the diagrams are written using plant UML - and therefore version controlled - I've decided to keep a copy of minor iteration of ERD in github to enable easier visibility.

14th May 2020

  • Initial project creation
  • Decided to use Cumulus CI following chats with their community and research. Some thoughts on this;
    • CCI supports SFDX priniciples
    • 2GP (required for this project) although not supported (at the time of writing) by CCI, you can package up 2GP projects manually using the standard SFDX CLI commands,