GithubHelp home page GithubHelp logo

sean-perkins / eventforce Goto Github PK

View Code? Open in Web Editor NEW
2.0 3.0 0.0 922 KB

Salesforce Event Management app built with NodeJS and Angular (4+); deployed on Heroku.

License: MIT License

TypeScript 78.92% HTML 11.38% JavaScript 2.02% CSS 7.69%
salesforce nodejs typescript angular angular-cli heroku

eventforce's Introduction

EventForce

A Salesforce integration built on-top of NodeJS and Angular (4+). The integration allows Salesforce administrators to create events, sessions and attendees through their Salesforce instance. Users (non-salesforce) can view available events and event details through the Angular app. They may register to an event, which will tie back into the Salesforce environment.

Technologies

  • Angular (4+)
  • NodeJS
  • Protractor/Jasmine (Testing)
  • TypeScript
  • RxJS (@ngrx in Angular)
  • JSForce (connect NodeJS to SalesForce API)

Getting Started

  1. Run npm run setup from the root directory.
  2. Run npm start.server to initialize the server locally at http://localhost:3000.
  3. Build the front-end with npm run build.client.
  4. Optional: If developing you can use the proxy with npm run start.client and opening up http://localhost:4200.

Example Images

Event Listings

SalesForce Schema

Event

The representation of events that users can register to.

Field Label API Name Data Type Description
Event Name Name Text(80) The Event's displayed name.
Description Description__c Rich Text Area(32768) The description of the event.
Start Start__c Date/Time The Event's start time.
End End__c Date/Time The Event's end time.
Status Status__c Picklist The Event's availability status.
Registration Limit Registration_Limit__c Number(18, 0) The maximum number of allowed attendees.
Remaining Seats Remaining_Seats__c Formula (Number)) The number of available open seats for registration. Click for formula.
Reserved Seats Reserved_Seats__c Roll-Up Summary (COUNT EventAttendee) The number of EventAttendee joins to this event.

Session

The representation of sessions under an event that users can register to.

Field Label API Name Data Type Description
Session Name Name Text(80) The Session's displayed name.
Start Start__c Date/Time The Sessions's start time.
End End__c Date/Time The Sessions's end time.
Status Status__c Picklist The Sessions's availability status.
Registration Limit Registration_Limit__c Number(18, 0) The maximum number of allowed attendees.
Reserved Seats Reserved_Seats__c Roll-Up Summary (COUNT SessionAttendee) The number of SessionAttendee joins to this event.
Remaining Seats Remaining_Seats__c Formula (Number)) The number of available open seats for registration. Click for formula.
Event Event__c Master-Detail(Event) The relationship join to the parent Event.

Attendee

The representation of a user attending a session and/or event.

Field Label API Name Data Type Description
First Name First_Name__c Text(180) The attendee's first name.
Last Name Last_Name__c Text(255) The attendee's last name.
Company Company__c Text(255) Optional: The attendee's company name.
Phone Phone__c Phone Optional: The attendees contact number.
Email Email__c Email The attendees email address.
Event Event__c Master-Detail(Event) The relationship join to the attending events.

SessionAttendee

The representation of the association between attendees and sessions (one-to-many).

Field Label API Name Data Type Description
Attendee Attendee__c Master-Detail(Attendee) The relationship join to the attendee.
Session Session__c Master-Detail(Session) The relationship join to the session.

EventAttendee

The representation of the association between attendees and events (one-to-many).

Field Label API Name Data Type Description
Attendee Attendee__c Master-Detail(Attendee) The relationship join to the attendee.
Event Event__c Master-Detail(Session) The relationship join to the event.

Testing

Front-end

  1. Navigate to the client directory cd app/client.
  2. Run the Angular-CLI testing suite: ng test.

Contributors

Sean perkins
Sean Perkins

eventforce's People

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

eventforce's Issues

As a user, I get a success/failure message after registration

  • Success
    • "You have successfully registered to Eventforce. Please login to access events."
  • Error
    • 500
      • "There was an issue registering your account. Please contact support at [email protected]"
    • 400
      • code
        • email_taken - "An user already exists with this email. Please login or recover your password."
        • invalid_password - "Your password did not meet our requirements. Please try again."
        • invalid_email - "Please enter a valid email address."

Connect to Salesforce in NodeJS

Determine how to connect to salesforce through NodeJS. Test implementation of login and simple query requests for event objects.

As a user I can register to an event

  • Register button on event detail page
  • After clicking the registration button I need to:
    • Select which sessions I want to register for under the event
    • Enter my basic information as an Attendee
      • First Name
      • Last Name
      • Email
      • Phone
      • Company

  • Display a success message after the user is registered to the sessions(s) and Event.

Determine how to persist the salesforce connection in Node

Salesforce is fairly sensitive to API call limits. The least amount of queries the best (true to any app, but more importantly to Salesforce). Currently having to repeating the login request with each query.. which means x2 the API calls per a singular API end point.

Deploy to AWS or Heroku

Deploy the Node.JS server and Angular bundle to either AWS or Heroku. Provide public URL on README.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.