Coder Social home page Coder Social logo

ajay-prabhakar / codeforces Goto Github PK

View Code? Open in Web Editor NEW
15.0 1.0 7.0 830 KB

Codeforces is Android version of Codeforces web. This app is made to integrate all the available Codeforces API into this app. :rocket:

License: Apache License 2.0

Java 100.00%
codeforces java android api

codeforces's Introduction

Codeforces ๐Ÿš€

Watchers Star Gazers Forks

Travis CI

Android Studio Gradle

About

Codeforces is an unofficial Android version of Codeforces web. This app is made to integrate all the available Codeforces API into this app. This way the users can have a mobile version of their handle and can get key information on the go.

How it Works?

On the Codeforces official web page, they provide various API which we access to get data in machine-readable JSON format. Then by using HttpURLConnection values of each column are parsed and set into the model to display the data.

When the app is opened, the user is required to enter his preferred handle (Username). After submitting the handle, all the contest that the Handel is associated it is displayed. Upon opening, this screen user can perform the following operation -

  • On clicking on the contest, it will redirect the user to the official contest page on the Codeforces.com
  • User can filter the contest based on the positive and negative.
  • User can view its profile.

Libraries Used

API's Used

Screenshots


Home Screen

Contest History Screen

User Info

Workflow of app

.......
codeforces
 โ”ฃ Activities
 โ”ƒ โ”ฃ HomeFeedActivity.java
 โ”ƒ โ”ฃ MainActivity.java
 โ”ƒ โ”ฃ ProfileActivity.java
 โ”ƒ โ”— WebViewActivity.java
 โ”ฃ Adapter
 โ”ƒ โ”— ContestsAppearedAdapter.java
 โ”ฃ BottomSheet
 โ”ƒ โ”— SortBottomSheetView.java
 โ”ฃ Listeners
 โ”ƒ โ”ฃ ContestItemClickListener.java
 โ”ƒ โ”— SortClickListener.java
 โ”ฃ Model
 โ”ƒ โ”— Contest.java
 โ”ฃ Utils
 โ”ƒ โ”ฃ RatingAsync.java
 โ”ƒ โ”ฃ RatingLoader.java
 โ”ƒ โ”— StringUtils.java
 โ”— Constants.java

Getting Started

These instructions will get you a copy of the project up and be running on your local machine for development and testing purposes.

Prerequisites

Android Studio, with a recent version of the Android SDK.

Setting up your development environment

  • Download and install Git.

  • Fork the Codeforces project

  • Clone your fork of the project locally. At the command line:

    $ git clone https://github.com/YOUR-GITHUB-USERNAME/Codeforces.git
    

If you prefer not to use the command line, you can use Android Studio to create a new project from version control using

https://github.com/YOUR-GITHUB-USERNAME/Codeforces.git

Open the project in the folder of your clone from Android Studio and build the project. If there are any missing dependencies, install them first by clicking on the links provided by the Android studio. Once the project is built successfully, run the project by clicking on the green arrow at the top of the screen.

PR Instruction

This project uses Travis CI for checking pull requests. So before committing your changes, open Terminal via android studio and run the following commands:

For Windows:

  • gradlew clean then
  • gradlew assembleDebug assembleRelease then
  • gradlew check then
  • gradlew build finally
  • gradlew spotlessCheck

NOTE: Currently sever is not working but update the features in the app Currently I am updating the resources for CSE and ECE departments only and that too for semester 3 only. Once I get all the resources, I will update in all departments. You can freely contribute to the project on the note that 'contributing guidelines' of the project are followed. New ideas and suggestions are welcomed. Happy Coding :)

codeforces's People

Contributors

ajay-prabhakar avatar jaindiv26 avatar krharsh17 avatar pshkrh avatar rajkumaar23 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

codeforces's Issues

Add the fab to scroll up

when the user scrolls down the recycleview he has to scroll up to reduce that behavior add the FAB to scrolls up

Update the build tools

Currently, the Gradle tools are 3.2.1 update it to 3.5.0 and upgrade the versions of dependencies

Direct to codeforces official page

By clicking on the contest direct to the particular contest of the codeforces official page through intetnt to browser
you can get the URL from codeforces API

Migrate to androidX

Describe the chore
Migrate the entire app into androidX

Would you like to work on the issue? (Yes/No)
No

Add Navigation drawer

Describe the feature you'd like
Add the Navigation drawer for

  1. Blog entities
  2. Recent submissions
  3. sign in with other user

Note: No need to implement the features just make navigation drawer

Would you like to work on the issue? (Yes/No)
No

Add README.md

Add the proper README.md
Take the reference https://github.com/amfoss/TempleApp

Add about of the app

Describe the feature
Add the about app
please mention that what is the need of the app and what are the features we have and how to use

Would you like to work on the issue? (Yes/No)
No

"Sign in with another" not working

Describe the feature you'd like
Add a logout so that user can simply switch from profile page to search new handler page.

Screenshots
CodeforcesIssue1

Additional context
There is one box in navigation drawer about the new handler but this is not working.

Would you like to work on the issue? (Yes/No)
Yes

Fetch the user info

While fetching the contests show the user info also
you can fetch the user info from if user handle is sandeshghanta the Api looks like this https://codeforces.com/api/user.info?handles=sandeshGhanta

Bump the gradlew versions

Describe the bug
Current versions of the gradlew and some dependencies are outdated, Update the versions

Would you like to work on the issue? (Yes/No)
No

Add the filter option

currently, we are showing all the list of the contests that the person appeared but the add filter option that
gives the option which lists the contest only with Negative change or with positive changes
so, the user can directly see where he has improved or not.

Landscape Orientation Not Supported

The bug is that the app does not support Landscape mode. The app only supports Portrait Mode.On Switching from portrait to landscape mode or vice versa the app crashes.

To Reproduce
Steps to reproduce the behavior:

  1. Go to RUN
  2. Wait till the app is ready to run in emulator or in device.
  3. Search a CodeForce handle.
  4. Rotate the app.
  5. I hope you can see what the bug is.

Expected behavior
As Expected the app should have supported the Layout Orientation of the phone as well.

Screenshots
Screenshot_20191217-163723_Codeforces

Would you like to work on the issue? Yes

Add Navigation Drawer

Describe the feature you'd like
Navigation Drawer

Additional context
The one who worked on this earlier added options as a textview instead of MenuOptions

Would you like to work on the issue? (Yes/No)
Yes

Change the method of fetching APIs

Describe the chore
Currently, we are fetching data through JSONobject change them into retrofit or OKHTTP

Would you like to work on the issue? (Yes/No)
No

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.