This is a prototype for a platform to be used for the distribution of donated event tickets via charities to those who may benefit form them most.
- Express
- Handlebars
- PostgreSQL
- Setup a local postgreSQL database.
- Clone the repo.
- Obtain a copy of the config.env from any of @AbdullahChaudhry, @y-zaky, @BartBucknill or @rinoma. Save the config.env in the root. Replace the database url with your own.
- Navigate to the root directory of the project in your terminal, and run
npm i
. - In your terminal run
npm run testbuild
. This builds the database schema and inserts test data. Alternatively you can runnpm run build
to merely build the schema without inserting test data. - In your terminal run
npm run devStart
to start the development server. - Navigate to localhost:4000 in your browser to see the site.
- To run the tests when in the root directory of the project run
npm test
in your terminal. - For manual testing you will want to set up dummy email accounts.
This prototype includes three main flows/user journeys:
- A charity can apply for an account. The process includes automated verification of their email address and manual verification by the Ticket Bank organisation that the account application is legitimate.
- The Ticket Bank organisation can create new events, and a new event notification email will be sent out to all registered charities.
- A registered charity that has been approved by the Ticket Bank organisation can request event tickets, and submit details of attendees. An email notifying success/failure will be sent out upon the application and the Ticket Bank organisation receives email notification that they need to send out the tickets. Note: this flow is not complete (see below).
A rough diagram of these flows can be seen here. Note that improvements were made to this original plan, so it is not accurate in every detail, but it is a good guide.
Due to time constraints there is still some work to do on this prototype.
- Many of the open issues may actually be ready for closing but await discussion with the product owner.
- The final flow of those listed above is not complete. When a charity requests tickets various actions should occur (see linked flowchart), but currently only emails are sent.
- There are several code quality issues to resolve including: test coverage is currently low, the file structure needs refactoring, and some errors are not handled properly.