Giter VIP home page Giter VIP logo

one-app-android's Introduction

One App Android

Description

What is the purpose of this project?

This project is a mobile application for hackers/organizers/mentors/sponsors at the hackathon. Hackers would be able to get announcements, get a QR code for checking/food/t-shirts, as well as see the schedule and map for the hackathon. Organizers would be able to scan for checkin/food/t-shirts for analytics that can be used after or even during the hackathon. Any more ideas to expand this project are always welcome.

Inspiration

How did this project come to be?

We had started using an inhouse hybrid mobile application to keep track of analytics to get a better idea of how certain aspects of the hackathon were running such as food consumption and optimization for checkin. This project expanded into a public native mobile application so hackers had easier access to their QR code as well as organizers with their scanners. Additional information of the hackathon were incorporated so that everyone would be able to stay up to date on events that are happeneing wherever they may be in the venue.

Installation Guide

For Architects

  1. Download and install Android Studio
  2. Download and install Git
  3. Open Terminal on your machine (on windows this is called Command Prompt)
  4. Navigate to the directory you want to download the repository to by doing cd SomeFolder/SomeOtherFolder/SomeOtherFolder
  5. Clone the repository by doing git clone https://github.com/HackRU/one-app-android.git
  6. Open the folder you created (which is called one-app-android) in Android Studio

For Users

Download the app from the Google Play store here

Example Uses

List of features goes here...

Style Guide

General

Gradle

  • When you add a dependency, put it underneath its relevant category. If there is no category that is specific enough, make a new one with a multi-line comment. Categories should be for specific functionality

    • For example: /* QR Codes */ would encapsulate all the dependencies that are needed for generating and scanning QR codes
  • When you add a dependency, briefly describe its purpose in a single-line comment above it

    • For example:
      // Converts json to Java objects and vise versa
      implementation 'com.google.code.gson:gson:2.8.5'
      

Resource Files

  • Drawable and Layout resource files should be prefixed with what type of UI element they are

    • A drawable example: ic_settings_black_24dp.xml is prefixed ic_ for icon
    • A layout example: rv_item_announcement.xml is the layout for an announcement list item that is displayed using a RecyclerView (rv_item for RecyclerView item)
  • Since Kotlin allows us to reference views without using findViewById(Int), IDs for views should be lowercase with words separated by underscores. This allows us to quickly identify in Kotlin if an object is a reference to a view or not. In most cases, IDs are prefixed with the type of view they are.

    • For example: rv_announcements is the ID of the RecyclerView for announcements
    • For example: button_retry is the ID of a retry button

TO-DO List

Easy

  • Convert the timer, announcements, login page, and QR floating action button to Kotlin
  • Implement info activity

Medium

  • Convert events to Kotlin and implement a ViewPager for Saturday and Sunday
  • Implement the map with picasso

Hard

  • Re-implement networking
  • Re-implement the scanner
  • Coordinate with the backend (lcs) about announcement notifications

Links to Further docs

TBA

one-app-android's People

Contributors

dhruvilp avatar ridhwaandev avatar schakravorti21 avatar seantaylorlane avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

one-app-android's Issues

Implement Events ViewPager

Some guidelines for implementing events:

  • Watch this video, it's a quick guide to using ViewPager. It's an old video, so make sure you check the current reference
    • Use a FragmentStatePagerAdapter
  • Each page in the ViewPager will be a fragment that contains a RecyclerView. I've already created these fragments. These fragments are called SaturdayFragment and SundayFragment and both use the same layout file fragment_saturday_sunday.xml.
  • You don't need to change anything about SaturdayFragment or SundayFragment
  • All you need to do is set up the ViewPager inside EventsFragment so that you can swipe between SaturdayFragment and SundayFragment

Thanks and good luck! If you have difficulty, don't be afraid to contact me on Discord or leave a comment on this thread

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.