Challenge Overview
1.1 Overview
The client for this project has decided to build a platform that will support the sale, exchange, and redemption of gift cards between businesses and individuals. The goal of this platform is to help small businesses expand, using both web and mobile layouts, by giving them a simple way to raise capital and acquire new customers using gift cards.
The client needs to create a high quality platform that is easy-to-use even for business owners that don’t have a lot of technical expertise. Many business owners are not technologically sophisticated, so creating a platform that is simple to understand and navigate is also a top priority.
The main function of the platform will be to allow business to post virtual gift cards for sale on the platform. Individual users will be able to browse and buy these gift cards, as well as resell or trade gift cards they own. Using the mobile layout, users will be able to redeem their gift cards at the business, and the business will be able to process gift card redemption at their point of sale.
This module will provide backend REST APIs.
1.2 Scope
Note: Please read the whole Application Design Specification first. All the details not mentioned in this specification are provided in that document.
This assembly will follow the REST API Specification to implement the following:
- GiftCardOfferController
- GiftCardOfferService
- ScheduledJob
- Relevant DTOs and schemas
1.2.1 ScheduledJob
A scheduled job should be defined here to update the GiftCardOffer status and Business status when necessary.
For the GiftCardOffer, if it is 90 days after publish, it should become ENDED.
1.3 Technology overview
- JavaScript
- Node.js 0.10.29
- Express 4.9.7
- MongoDB 2.6
- Mongoose.js 3.8.12
- winston 0.7.3
- jwt-simple 0.2.0
- underscore 1.6.0
- passport 0.2.1
- passport-http 0.2.2
- passport-http-bearer 1.0.1
- qrcode 0.2.12
- Nodemailer 0.0.7
- nodemailer-smtp-transport 1.0.11
- passport-linkedin 0.1.3
- passport-facebook 1.0.3
- passport-twitter 1.0.2
Final Submission Guidelines
-
Source Code
-
Deployment Guide