Here we have some challenges for the following areas Backend, iOS and Android. Please feel free to enjoy our challenge and let us know if you have any question.
The main goal of this challenge is to exercise some concepts of API Rest, microservices and integrations. The basic goal is to create two APIs (microservices) using Django Rest Framework or similar web frameworks. These microservices should communicate with each other by JSONs, but should keep their databases separated. Both of them should answer to simple CRUD requests -- Get, Post, Put, Delete. We'll have two APIs, let's consider the first API "Ana" and the second one "Bob". When having a POST to Ana, Ana should perform a request to Bob and will save the answer of Bob on its own database. Bob should have API calls to return random values when its created, so when we have the same input coming from Ana we should have the same answer from Bob. In order to do it, Bob will have to store some data on its own database. The main reason is the needed decoupling between them.
The models, views and business rules may be created at your own criteria. We're interested on the dynamics that these parts will connect to each other.
As a topic we have a few suggestion:
- Bob could serve Postal Code Information (Street, City, State, etc) given a Postal Code it will return information. Ana should consume Bob and propagate its answer.
- Bob could be serving Lotto Check Service. Given 6 number, Bob will tell Ana if its a winner combination or not. Ana should cache its answer in order to avoid calling Bob many times.
Fell free to follow any topic, but please make sure you have understood the purpose of its challenge.
- Unit tests
- Integrations tests
- Documentation
- Deployment (Heroku, Openshift, DigitalOcean)
- Clean, readable, maintainable, and extensible code
- Decoupling on two different folders
- Django Rest Framework
- Interface
- Don't worry about the topic you'll chose to work on. Fell free to work on a confortable topic.
- You should not try to push changes directly to this repository.
The candidate must implement the APIs and send a Pull Request to this repository with the solution.
The Pull request process works this way:
- The candidate forks the repository (should not clone it directly)
- Works on the code using the forked repository.
- Commits and push changes to the forked repository.
- Using the GitHub interface, send the pull request.
The main goal of the challenge is to create an iOS app to fetch the API information of companies and categories and show them according to the provided screenshots.
Company list: http://api.staging.onyo.com/v1/mobile/brand/1/company
- Customized UINavigationBar
- Company list
- Category list
- Follow design on the provided screenshots.
- Asynchronous and on demand image loading
- Dependency management system (CocoaPods, Gradle, ...)
- Minimum iOS version 8.0
- Swift 2.0
- Customized tabs
- API Communication Framework (Alamofire, ...)
- ORM Framework (CoreData, Realm, MagicRecord, ...)
- Image loading and cache Framework (SDWebImage, Alamofire, Fast Image Cache, ...)
- Unit Testing (XCTest, KIF, Kiwi, Quick, ...)
- Functional tests (Appium, UIAutomation, ...)
The frameworks are just a suggestion. You can use any other frameworks and surprise us!
- You should not try to push changes directly to this repository.
The candidate must implement the app and send a Pull Request to this repository with the solution.
The Pull request process works this way:
- The candidate forks the repository (should not clone it directly)
- Works on the code using the forked repository.
- Commits and push changes to the forked repository.
- Using the GitHub interface, send the pull request.
The Android Challenge is available at: android-challenge.md