A conference speaker management application that integrates with websites built with WordPress.
https://automate.hweitian.com/
Login with the following:
Email: [email protected]
PW: geNie@89757
- Create conference and link each conference to a WordPress website
- Add contacts and assign contact as a speaker for each conference
- Add a contact as the administrator of the system
- CRUD sessions and publish it user specified WordPress website
- Create program overview and publish it on user specified WordPress website
- Create speaker's presentation schedule based on the assigned topics in each session
- Frontend: React
- Backend: Express.js
- Database: Sequelize (ORM), PostgreSQL
- Routing: React Router
- UI: Shadcn
- Storage: Firebase
- Forms: React Hook Forms
- Authentication: Auth0
- API: WordPress API, SendGrid
-
Clone repo to local
-
Configure
.env
file, make sure to get your own API keys stated below and insert it into your.env
file- If unsure where to get API keys, refer to the Tech Used for the documents
VITE_DOMAIN= <Auth0 Domain> VITE_CLIENT_ID= <Auth0 client id> VITE_AUDIENCE= <Auth0 app audience> VITE_BASE_URL= <Local Backend server URL> VITE_APP_BASE_URL= <Backend server URL> (only required if not running server locally) VITE_APP_FIREBASE_API= <Firebase API key> VITE_ENV=development
-
npm i
to install all dependencies -
npm start
to run the application
npm i
to install dependencies- Install and start postgresql database locally
npx sequelize db:create
to create databasenpx sequelize db:migrate
to create tablesnpx sequelize db:seed:all
to create seed data- Create an Auth0 account and setup an Auth0 API and Applications
- Create a SendGrid account, setup Sending Identity and generate an API key
- Create your WordPress website and setup API Authentication with miniOrange WordPress Rest API
DB_USERNAME=postgres
DB_PASSWORD= <Postgres database password>
DB_NAME= <Postgres database name>
DB_HOST= <Postgres database host>
DB_DIALECT=postgres
PORT=3000
NODE_ENV=development
AUDIENCE= <Auth0 Domain>
BASEURL= <Auth0 base URL>
AUTH_CONNECTION_ID= <Auth0 Authentication database identifier>
AUTH_DOMAIN= <Auth0 API domain>
AUTH_CLIENTID= <Auth0 client id>
AUTH_SECRET= <Auth0 Machine to Machine client secret key>
AUTH_REDIRECTURL= <Frontend Application URL>
AUTH_CONNECTION= <Auth0 database name>
AUTH_TEMP_PW= <Temporary Password - Can be anything>
SENDGRID_API_KEY= <SendGrid API Key>
SG_EMAIL= <Email address configured in SendGrid>
WORDPRESS_NAME= <WordPress login name>
WORDPRESS_PW= <WordPress login password>
npm run devStart
to run database locally
- Notify user if there is a conflict in speaker's presentation schedule when adding a speaker to a session
- Reorganise topics in each session with drag-and-drop