A platform to auction images in support of charitable causes!
View Demo
·
Table of Contents
Inspired by charitable auction events, Biddify is a digital auction house for images where artists and photographers can specify a charitable organization that they are supporting
- Image upload, watermarking and access control for original images
- Create auctions and place bids for images
- Basic authentication for users
- Create/update/delete user profiles
- Node/Express backend in Typescript
- AWS S3 to store images
- MongoDB/Mongoose for auction, bid, user information
- Jest/Supertest for testing
- Bcrypt/Passport for user authentication
Continued in Acknowledgements.
This repo holds both the frontend (in progress) and backend so that they are accessible at a single link.
/server
contains the node backend
/client
contains the react frontend
- Node v12.18.0
- Typescript v3.9.5
- An available MongoDB cluster: a cluster was created for this project on MongoDB Atlas but for local development you will need to start your own.
- AWS S3 bucket for image storage
- Clone the project
git clone https://github.com/Jonathancui123/shopify-backend-challenge.git
- Move into the server folder
cd server
- Install NPM packages and development packages
npm install npm install --dev
- (Still within
/server
), rename.env.example
to.env
and then enter environment variables for MongoDB and AWS as described - To build and start the app:
npm run build npm run serve
We test with Jest, Supertest and MongoDB memory server to simulate database calls. The mock database is configured in jest-mongodb-config.js
. Chai is also used for the expect function.
To run tests, simply run:
npm run test
Coverage reports should be created as well.
Jonathan Cui - j62cui@uwaterloo.ca
Project Link: https://github.com/Jonathancui123/shopify-backend-challenge
I used Microsoft's Typescript/Node Starter to jumpstart user profile and user authentication functionalities
Multer was also used to support image uploads