mitodl / bootcamp-ecommerce Goto Github PK
View Code? Open in Web Editor NEWMIT Bootcamp e-commerce
License: BSD 3-Clause "New" or "Revised" License
MIT Bootcamp e-commerce
License: BSD 3-Clause "New" or "Revised" License
In order to avoid a conflict with the DNS for the existing site at bootcamp.mit.edu, we won't use a subdomain. Instead, we'll go with bootcamp.odl.mit.edu
. This should be a simple setup in Route 53 and Heroku.
Similar to #9.
"bootcamp name" needs to be passed to CyberSource as a MerchantDefinedField.
Merchant Defined data is passed to Cybersource in ecommerce/api.py. Currently we pass data about the klass, but not the bootcamp.
'merchant_defined_data1': 'klass',
'merchant_defined_data2': '{}'.format(klass.title),
'merchant_defined_data3': '{}'.format(klass_id),
(I'm not sure what value there is in passing the string 'klass' and the klass id.)
Off the top of my head this should include:
Invision design: https://projects.invisionapp.com/share/SFBD1T7DW#/screens/229943665
The payment page styling should reflect the invision design above
the home page has no important content for a logged in user
(I consulted @roberthouse54 for this)
Add a skeleton UI to allow login and logout, and some non-functional payment UI
Invision design: https://projects.invisionapp.com/share/SFBD1T7DW#/screens/229943705
The UI design calls for a payment history for each klass at the bottom of the /pay
page
part of #5 As a learner, I want to get a confirmation that the payment was received, after each of my payments.
Since we're using edX for SSO, I think we need a simple TOS page.
I've drafted something based on the MicroMasters TOS: https://goo.gl/afL6sR
Do something similar to micromasters and fetch the user name and last name during the login.
formatDollarAmount(708.7)
is rendered as $708.7
but should be $708.70
This is a browser view, suitable for printing. It should contain the following information:
Andrew from the Bootcamp team asked us to make the Bootcamp logo smaller on the receipt email sent from CyberSource. The logo text should be about the same size as the "Receipt" header in the e-mail.
He'd also like to see some more white space between the logo and the rest of the text. I think we can just add some padding when we reduce the log.
We should replace the Cybersource logo on the receipt emails that are sent to payers
Installments (i.e. payment price) are recommendations only. We don't need to enforce them.
The Bootcamp team would like to set the size and number of installments per bootcamp, but to start with there will be 3 installments of $2000 each.
(Similar to mitodl/micromasters#2156)
Cybersource supports a logo and a limited amount of styling for the checkout pages. It would make users more confident in the checkout process, and less likely to abandon their cart, if they saw MIT branding on these pages.
The logo is a 840x60 (or smaller) pixel image, in jpg or png format.
Here's a screenshot from the Cybersource business center where you can see the style settings that can be changed.
Similar to MicroMasters -- https://invis.io/Y4BG0Y3KP#/205088104_Sign_Up_Login_Modal -- display a modal before transferring the user to edX for login.
We need to set up CyberSource similarly to the MicroMasters setup:
It looks like CyberSource doesn't like the same URL being used for both the order receipt and cancellation pages. We should make some placeholder URLs which are different from each other (ie {base_url}/receipt/ and {base_url}/cancel/)
After the payment on cybersource the user gets redirected to the main website https://bootcamp-ecommerce-ci.herokuapp.com/?status=receipt
but the page is empty.
Tested only on CI environment so far
We've decided that the logic for payments and installments in bootcamp-ecommerce is as follows:
We need to reflect this logic in the UI.
Invision design: https://projects.invisionapp.com/share/SFBD1T7DW#/screens/229716307
The login page should reflect the design above.
Invision designs: https://projects.invisionapp.com/share/SFBD1T7DW#/screens/229716307
The design calls for some styles/elements that will be common for all pages in the bootcamp-ecommerce app.
Acceptance criteria:
We need to add the relevant script tag for google analytics and whatever other analytics tools we use
for Prod, use UA-5145472-18
for CI and RC, use UA-5145472-19
Another request from Andrew. He didn't like the addition of "/ Payment" to the logo.
He was amenable to making "Payment" a title elsewhere in the header, but he didn't like it as part of the logo.
Very basic caching to be used for the User email reminders
The bootcamp UI currently displays some hardcoded text for single klass that a user can pay for. We want to show the user the actual information from the API about the klasses they have paid for or can pay for.
Acceptance criteria:
This is the UI part of #6
The learners email needs to be passed to CyberSource as MerchantDefinedFields, since the payer email and payer name may not be the same.
Similar to #9.
Merchant Defined data is passed to Cybersource in ecommerce/api.py. Currently we pass data about the klass, but not the learner.
'merchant_defined_data1': 'klass',
'merchant_defined_data2': '{}'.format(klass.title),
'merchant_defined_data3': '{}'.format(klass_id),
We need to send support_email
as part of the context
As a user (learner or admin), I want to be able to log in to the site with my edX. org account credentials, same as MicroMasters.
emails like [email protected]
are not encoded properly
I think we just need a 404 and a 500 page. Maybe a 403.
It could be the same general idea as micromasters
We need the following API:
/<custom_base_url>/user/<user_email>
Content-Type: application/json
{
"user": "[email protected]",
"bootcamps" : [
{
"bootcamp_id" : 23,
"bootcamp_title": "The Awesome Bootcamp",
"klasses" : [
{
"klasse_id": 12,
"klasse_name": "The Awesome Bootcamp Klasse of 2016",
"status": "admitted",
"is_user_eligible_to_pay": true
},
{
"klasse_id": 23,
"klasse_name": "The Awesome Bootcamp Klasse of 2016",
"status": "pending",
"is_user_eligible_to_pay": false
}
]
}
{
"bootcamp_id" : 76,
"bootcamp_title": "The Outstanding Bootcamp",
"klasses" : [
{
"klasse_id": 36,
"klasse_name": "The Outstanding Bootcamp Klasse of 2017",
"status": "admitted",
"is_user_eligible_to_pay": true
}
]
}
]
}
Right now we just show the klass title but looking at the real data, it does not make much sense.
This should not be really necessary because the UI eventually will not show the form, but we should do it anyway.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.