Code Monkey home page Code Monkey logo

infosys1d's Introduction

App Package Outline

Generic badge MIT license

*Do refer to the newest releases for bug fixes to the application

Description

PUG draws inspiration from the kampung spirit in Singapore, fostering a community that plays together. Organising and joining events is streamlined and can be done in the snap of a finger. You can view and sort the activities that you have signed up for, organised or previously participated by accessing them in one click from the home page. Other key features include filters to sort events by date, sport and location for when joining events as well as a customisable profile.

Get Started Register Main Layout Badminton Dialog Organize Activity User Layout


Design Patterns (Miro)
App Designs (Figma)
Final Report

Commit

2 activities: AuthActivity + MainActivity
10 fragments: GetStartedFragment, LoginFragment, RegisterFragment, ResetFragment
BookingFragment, NewActFragment, UpcomingActFragment, MainFragment
EditProfileFragment, UserFragment

Packages

tech.sutd.pickupgame

constant

ClickState

data

ui

helper

  • Various database helper methods

new_activity
past_activity
upcoming_activity
user
your_activity

  • room database codes

worker

  • All the worker tasks for various databases

AppDataManager

  • Concrete class that implements the AppDataManager methods

AppExecutors

  • Custom executor codes

AppSchedulerProvider

  • Concrete class that stores custom RxJava Scheduler Threads

DataManager

  • Extends all methods from other databases using interfaces

Resource

  • RxJava enums & base observer setters

SchedulerProvider

  • Methods to retrieve RxJava Scheduler Threads

di

Refer to Design Patterns (Miro)

models

ui

BookingActivity

  • Data class for pushing to firebase realtime db + firestore

NewActivity
PastActivity
UpcomingActivity
YourActivity

  • Data class for inserting, updating, deleting, custom querying in Room

User

  • Data class for inserting, updating, deleting, custom querying in Room

UserProfile

  • Data class for reading from and writing to firebase realtime db

ui

auth

gettingstarted
GetStartedFragment

login
LoginFragment

register
RegisterFragment

reset
ResetFragment

viewmodel
UserViewModel

  • firebase realtime db + firebaseAuth writes and reads: register, reset, updateUserDetail, login, insertUserDb
  • room methods: insert, deleteAllUsers, getUsers

AuthActivity

main

booking
BookingFragment

main

adapter
FilterAdapter (ListAdapter)

  • NewActivity db filter

NewActivityAdapter (PagedListAdapter)

  • Coupled to NewActFragment + MainFragment

PastActivityAdapter (RecyclerAdapter)

  • Coupled to UpcomingActFragment

UpcomingActivityAdapter (PagedListAdapter)

  • Coupled to UpcomingActFragment + MainFragment

YourActivityAdapter (RecyclerAdapter)

  • Coupled to UpcomingActFragment

newact
NewActFragment

upcomingact
UpcomingActFragment

viewmodel
BookingActViewModel

  • push to realtime db

NewActViewModel

  • room method: insert, deleteById, deleteByChecked (check if registered, delete from NewActivity db), deleteByClock (delete old data), getAllNewActivitiesByClock, getAllNewActivitiesBySport, getAllNewActivitiesByClock2 (filter)
  • firebase realtime db + firestore read & write data: pull, push

PastActViewModel

  • room method: insert, getPastActivities
  • firebase realtime db: pullFrom("upcoming_activity", "your_activity")

UpcomingActViewModel

  • room method: insert, deleteByClock, deleteById, getAllUpcomingActivitiesByClock, getAllUpcomingActivitiesByClock2 (filter)
  • firebase realtime db + firestore read & write data: deleteFromDb, pull

YourActViewModel

  • room method: insert, deleteById, getAllYourActivitiesByClockLimit10, getAllYourActivitiesByClock
  • firebase realtime db + firestore read & write data: deleteFromDb, pull

MainFragment

user

editprofile
EditProfileFragment

UserFragment

BaseInterface

  • Custom interfaces for listeners
    • BookingActListener
    • UpcomingActDeleteListener
    • RefreshListener

MainActivity

BaseViewModel

  • Retrieve instances of CompositeDisposable, DataManager, SchedulerProvider

util

CustomSnapHelper

  • For recyclerview snaps

DateConverter

  • For date & time conversion

StringChecker

  • Checks strings & returns images / adapts strings

TextInputEditTextNoAutofill

  • Override autofill

viewmodels

ViewModelProviderFactory

  • Refer to Design Patterns (Miro), required for di

Package

BaseActivity

BaseApplication

  • inject application component into BaseApplication

BaseFragment

  • retrieves navController, disableAutoFill, setDialog, enqueueing task (for refresh)

SessionManager

  • used to keep track of auth status of user (register, login, logout, user instance)

androidTest

Instrumented testing cases using JUnit4Runner + Espresso

test

Unit testing cases using JUnit4 + Regex

infosys1d's People

Contributors

assqueue avatar rebbyling avatar yuanhawk avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

princetonpoh

infosys1d's Issues

App Features

Feedback for PUG v1.0.0:

  1. Can my email not be saved on the username? - should implement a 'remember me' checkbox for users
  2. Can Sign In and Sign Up layout be more distinctive? - layout has minimalistic design, should start drawing up the layout

Api management

Users would require calendar updates or weather forecast updates to prevent sudden cancellation. (Priority)

Users shld be given the chance to update their photo (less priority)

Querying by updates

Reduce the number of queries, one-time update only if there is a push request/logging in on app start/recyclerviewscrollup. Use periodworkrequest instead to reduce the number of calls.

Currently room db uses onconflictstrategy.replace. Is there any other better methods to just up-sert

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.