IntrepidPursuits / ContestAndroid

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Judgy (ContestAndroid)

Build Status Coverage

Judgy aims to facilitate the mediation of local contests so that everyone can focus on enjoying the event.

HOW IT WORKS:

  • Contest creators can set rules about what attributes should be considered by participants.
  • Contestants and judges are invited by the owner to participate via a unique code.
  • After all submissions are sent by contestants and scored by judges, all contest participants get notified about results.

Table of Contents

  1. Building
    1. Onboarding
    2. Configuration
    3. Running
  2. Testing
  3. Release
    1. Quirks
    2. Known Bugs
  4. Architecture
    1. Data Flow
    2. Core Technology #1
    3. Core Technology #2
    4. Third Party Libraries
  5. History

Building

Onboarding

Install dependencies by building the project. It doesn't require any other special configuration to run.

Configuration

There are three different types of builds: debug, qa, and release. For differences, check out the gradle configuration. Some highlights are:

  • API: debug has the flag DEV_BUILD and uses a mock API, while qa and release use the real API endpoint
  • Logs: are enabled for debug and qa
  • Release: the build type release has never been configured

Running

Run the app in either the emulator or on a device.

See Quirks.


Testing

  • Unit tests exist under the "test" directory. We are aiming to each 100% code coverage on Presenters.
  • You can run the code coverage locally by running ./gradlew unitTestCoverage from the command line.
  • There are no UI (Espresso) tests at this moment. The "androidTest" directory holds the Skeleton code only.

Release

There have been no releases of this app.

Quirks

User ID

Judgy has no registration or login: the user is created through the API when the app is opened, and saved in the user preferences until it is cleared.

At this moment there is no way to recover your user ID and content if the preferences are cleared.

To make manual testing easier, shaking your phone will clear the preferences and you will be able to test the app as a new user. Note that to our knowledge this is not possible in the emulator.

Choosing API

The debug buildtype uses a mock API (see Configuration). If you want to test the debug build with the real API, use RetrofitClient.getApi() in class ContestApplication.

Known Bugs

Bugs are reported in Jira.


Architecture

We use MVP.

Data Flow

Core Technology 1

Core Technology 2

Third Party Libraries

  • RxJava/RxAndroid
  • Retrofit
  • Gson
  • OkHttp
  • Butterknife
  • Calligraphy
  • Picasso
  • UCrop for cropping images
  • Mockito
  • Timber
  • Intrepid common utils

Info

Slack channels

  • judgy (both to talk and for jenkins reports)

History

Started as an apprentice project in Winter 2017 in parallel with Judgy iOS.

About


Languages

Language:Java 71.9%Language:Kotlin 28.1%