First Release for the ACM Core API 🎉
Release Notes:
- Centralized backend for all ACM Services
- Application system [ACM Portal]
- Event system [ACM Portal]
- Profile system [ACM Portal]
- Officer utilities system
- Hacktoberfest system
- ACM Development Technical Challenge system
- Mailing system
User functionality:
- Able to generate access tokens for Auth0
- Able to add callback urls for Auth0
- Able to verify authenticated users from Cloudflare Access
- Able to verify authenticated users from Auth0
- Able to setup new profile document upon account creation
- Able to record event attendance and associate with both profile and event documents
- Able to save newly created profile as document
- Able to retrieve full profile
- Able to retrieve shortened profile for populating typeform fields
- Able to generate new vanity link
- Able to update vanity link
- Able to delete vanity link
- Able to retrieve list of vanity links
- Able to parse incoming typeform responses and extract into simplified documents
- Able to send confirmation emails to receiving a typeform webhook
- Able to generate custom firebase authentication token based on third party JWT
- Able to access ACM Development Fall 2020 Technical challenges
- Able to create new event which supports checkin functionality through typeform web hook submission
- Able to create new vanity link through typeform web hook submission
- Able to connect sendgrid and typeform together for customized email actions through typeform web hook submission
- Able to connect discord information and profile information together
- Able to add subscriber to mail chimp
- Able to add subscriber to sendgrid
- Able to add meta information to sendgrid user [All fields from the profile collection]
- Able to send dynamic template email via sendgrid
- Able to trigger a mailing list to send to all subscribers
- Able to retrieve all contact lists
- Able to create a new marketing list
- Able to retrieve data on a single dynamic template
- Able to manage customizable permission system
- Able to save resumes in Cloud Storage
Additional Functionality:
- Able to access 3 separate Express servers to handle authentication from different services
- Handle requests signed with Cloudflare Access authorization header
- Handle requests signed with Auth0
- Handle requests with no authorization (open webhooks)
- Able to pass all error traces to Sentry
- Able to pass all log traces to LogDNA
- Able to connect multiple ingestion id to a centralized logger instance
- Fully scalable micro service architecture
- Able to deploy on serverless
- Able to function based on document triggers
- Able to validate if parameter types match specified interface
- Able to check Authorization headers with custom express authTypes
- Able to manage environment variables through firebase function configuration
- Able to run serverless functionality & firestore through local emulator
Dependency List:
"@logdna/logger": "^2.1.3",
"@mailchimp/mailchimp_marketing": "^3.0.12",
"@sendgrid/mail": "^7.2.3",
"@sentry/node": "^5.19.2",
"@sentry/tracing": "^5.25.0",
"axios": "^0.21.1",
"body-parser": "^1.19.0",
"cors": "^2.8.5",
"crypto": "^1.0.1",
"express": "^4.17.1",
"express-jwt": "6.0.0",
"firebase-admin": "^8.10.0",
"firebase-functions": "^3.13.0",
"helmet": "^3.23.1",
"jwks-rsa": "^1.12.2",
"md5": "^2.3.0",
"morgan": "^1.10.0",
"request": "^2.88.2"
Publisher Information:
Organization: Association for Computing Machinery
Chapter: University of Texas at Dallas
Director of Development: Harsha Srikara