A School of Code event management and ticketing application for organising and delivering the community classes, another School of Code initiative to introduce people from diverse backgrounds to the world of tech. Working in a team of five people, we took on the challenge and we identified the pain points of participants and organisers for this problem. And the solution that we came up with was a web app that allows the bootcampers/organisers to create and manage the events and forthcoming participants to sign up to an upcoming event.
- Participants can login and sign up for an event.They also have the posibility to see the list of their upcoming events in My Events page, where they can also cancel their registration to a particular event .
- Organisers can create and edit events, a functionality to which only the organisers have access based on the access permisions associated to their account in the Auth0 dashboard.
- Organisers can track the attendance to a specific event.
If you want to see the frontend code of this application head to this repository.
Here is the deployed version.
- Make sure that you have Node.js installed and clone the repo.
git clone https://github.com/vmilitaru/eVenture-server.git
cd into the folder
- Next, install all the package dependencies to run the app
npm install
# or
npm i
-
Go to heroku and sign up for a free account.
-
Create a new app, give it a name and select the region.
-
Navigate to the resources tab of your new app.
-
In the Add-ons search bar, type postgres and select Heroku Postgres.
-
Select the
Hobby Dev - Free
plan and clickSubmit Order Form
. -
Click the link to
Heroku Postgres
, this will open a new tab and under the Settings tab you will be able to view your credentials.
-
Go to cloudinary and sign up for a free account.
-
To configure the cloudinary object you will need to add your cloudinary credentials such as
Cloud name
,API Key
andAPI Secret
displayed in the Dashboard tab as environment variables. -
Make sure that on your cloudinary account you have an upload-preset called
event_setups
. It is basically the place where you want to store the uploaded images. You can always change the upload-preset name into something else but once you do that you need to update as well the cloudinary function that sits in the models folder to matches the new upload-preset name. -
Go to Settings>Upload and scroll down until you see the Upload presets section and click Add upload preset link.
-
Configure the following settings:
- Upload preset name - should be
event_setups
- Folder - you can name the folder as you wish 👉 the folder will be visible in your Media Library page after you create your first event on the app
- Upload preset name - should be
-
Everything else can stay as default and click Save.
-
Now, under Upload presets section, next to
ml_default
you should be able to see also theevent_setups
upload-presets folder -
Save the settings.
- If you haven't already set up an Auth0 application please head to the frontend repository of this project and in the README document you will find all the steps needed to complete this.
To connect the server with your Heroku databse, Auth0, Cloudinary and Nodemailer you'll need to add the relevant settings from your applications as environment variables.
-
Copy the content of
.env.example
into a new file called.env.local
at the root of this project, then add the missing environment variables:PGHOST
,PGUSER
,PGDATABASE
,PGPASSWORD
andPGPORT
- can be found in the Heroku Dashboard>Your App>Overview>Heroku Postgres>Settings under View CredentialsAUTH0_DOMAIN
andCLIENT_ORIGIN_URL
- Can be found in the Auth0 dashboard under Applications ,select the created Application and go tosettings
AUTH0_AUDIENCE
- can be found in the Auth0 dashboard under APIs ,got tosettings
tab and copy the IdentifierEMAIL_ADDRESS
- this is needed to send the confirmation email of the event to which a participant has registered - you can use your own email address or create a new oneEMAIL_PASSWORD
- the password of the email that you chose the send the email confirmation of the eventCLOUDINARY_NAME
,CLOUDINARY_KEY
andCLOUDINARY_SECRET
- can be found in the Cloudinary dashboard
In the project directory, you can run:
npm run dev # runs the server
npm run create-events-table #creates the events table
npm run create-tickets-table #creates the tickets table
Fadumo Aideed | Valentina Militaru | Amelia Collins-Patel | Tom Bennet | Michael Swann |