- [+] define architecture
- [+] setup plumbing
- [+] build project skeleton
- [+] setup test infrastructure
- [+] define deployment/running strategy
- [-] add business logic
- [-] refactor
- [-] document
Phases to achieve certain results and control scope
One app (Distribution)
- Interface: REST backed by Play Framework (Scala)
- Persistence in memory
- Business Logic: Hello world page via Play
One app (Distribution + OAuth)
- OAuth provider for Play
One app (Distribution + OAuth + Users)
- New Apis
- persistence backed by embedded cassandra
2 front-end apps: Distribution, OAuth talking to Internal Backend via messaging
Dockeralize the apps
The default OAuth settings could be found in conf/ad.conf
ad { OAuthConsumerKey = ad-challenge-product-i-XXXXXX OAuthConsumerSecret = XXXXXXX }
Pre-requisites: JDK version 8
To start an application from the command line
bin/activator run
Check application is running properly by opening url in browser: http://localhost:9000/ping
bin/ngrok http 9000
Copy url like https://e94ea19a.ngrok.io
and enter in AD product page
- Edit Integration: https://adchallenge-test.byappdirect.com/cms/editApp/115432?524765148#edit-integration
- Edit Authentication: https://adchallenge-test.byappdirect.com/cms/editApp/115432?524765148#edit-authentication
Urls should look like
Subscription management
https://b48b493c.ngrok.io/subscription/create?eventUrl={eventUrl}
https://b48b493c.ngrok.io/subscription/change?eventUrl={eventUrl}
https://b48b493c.ngrok.io/subscription/cancel?eventUrl={eventUrl}
https://b48b493c.ngrok.io/subscription/notice?eventUrl={eventUrl}
User assignment management
https://b48b493c.ngrok.io/user/assign?eventUrl={eventUrl}
https://b48b493c.ngrok.io/user/unassign?eventUrl={eventUrl}
Authentication
https://b48b493c.ngrok.io/auth/login
https://b48b493c.ngrok.io/*
This program is licensed under the Apache License, version 2. See the LICENSE file for details.