Coder Social home page Coder Social logo

ncalarms's Introduction

NapChat


NapChat is a social utility app designed to allow users to create sleep alarms that can send auto notifications to a group of friends to notify them that they are sleeping. As well this app can be used to track sleeping patterns and also as a personal sleep alarm. This app will target students for exam time, people with roomates, shift workers such as nurses doctors and people in trades. Also coaches for sports teams when on the road or nights before games to help tell their athletes when to sleep and when to wake up. Other applications could be wedding parties, family schedules, funerals, catching flights, business flights/trips.


ncalarms's People

Contributors

liaowilly12123 avatar

Watchers

 avatar

ncalarms's Issues

Alarms and Notifications

  • Create new alarm form UI
  • Create alarm models
  • Display created alarms on the Home tab
  • Functionality for editing and deleting alarms
  • Alarm functionality

Friend System

  • Send friend request by referring to username.
    • Add Friend Dialog. Enter their username. Confirm success or fail with custom toast.
  • Receive friend requests. Be able to see these in the requests activity
  • Accept/Decline friend requests

Star-Gazer: Alarm System

Home Page Alarm List

  • Displays
  • Loads properly
  • Updates properly
  • Delete (need to get alarm id)
  • Edit Alarm (need to get edit alarm page version of create alarm activity)
    • Alarm type conversions
  • Activate & Deactivate Alarm
  • Add Alarm Button

Create Alarm

  • Proper Firing time.
  • Time Picker
  • Vibrate
    • Vibrate Patterns [heartbeat, buzzsaw, locomotive, flash dance]
  • Repeat Days
  • Ringtone
    • Default
    • Device
    • Music
    • Custom Ringtones
  • Snooze

Repeating Alarm class

  • Proper fire time/days.
  • Dismiss
  • toString Override.

AlarmController

  • Schedule Repeating
  • Cancel Repeating
  • Cancel & Deactivate Repeating
  • Snooze
  • Dismiss
  • AlarmActivity

Other

  • AlarmReceiver
  • OneTimeAlarm class
    • toString Override.

AlarmBuilder

  • OneTimeBuilder
  • RepeatingBuilder

Misc.

  • Fix SET_ALARM permission being denied when protection level is normal and should be granted at install if declared in Manifest.

Star-Gazer: Sleep Facts Page

This should be a carousel page in which users can view a picture/gif and a summarizing quote from an academic study related to sleep.

We want to gather a min of 10 facts about sleep and the citation to the academic study they are from. Try and save onto the links to access full study if found online. Post your findings below.

FACTS

  • Fact - citation

Star-Gazer: UI Enhancement

Initial Round of improvements (layouts and colors)

  • Login Activity
  • Home Activity
  • Sign-Up Activity
  • Options Activity
  • Create Alarm Activity
  • Alarm Activity
  • Launch Screen
  • Logo
  • Icons
  • Pictures

Authentication/Account Management

STATUS

  • Systems need testing to affirm everything works before closing issue.

TODO:

  • Create User singleton and also initialize such a singleton on successful login.
  • Reinforce email format in Login and Signup Activity with proper error messaging.
  • Reinforce password format in SignUp Activity with proper error messaging.
  • Email Verification.
  • Rest Password from Options.
    • Just need a button with some text for this in options.
  • Change Email, Username from Options
    • The methods to do these are in the Docs on Firebase, just need to create the UI elements to perform these.
  • Forgot Password button/functionality on LoginActivity
    • Just need to get custom dialog boxes to pop up.
  • Delete Account
    • User must re-authenticate in a dialog box in order to delete account.
  • Change First Name & Last Name credentials to one Display Name or Username
  • Logout needs to cancel any currently scheduled alarms. Should have a modal warning them of this when logging out.
    • Modal
  • Need to remove user data from RTDB when deleting account.

Friend System

Specifications:

Functionality

  • Send invites to dl
  • Send Friend requests.
  • Receive Friend request
  • Be able to accept/deny requests.
  • Add friend to Group
  • Remove Friend from group

UI Friends Fragment

  • Friend tab
    • Array adapter
    • Unfriend option
    • Add Friend option
    • View details
  • Group tab
    • Create Group
    • Edit Group
    • Delete Group
    • Array Adapter
    • View details
      From Firebase we need to look at Invites, Cloud Messaging

Notification System

  • Attach contacts to an alarm to notify them.
  • Attach context to alarm notifications.
  • Provide awake time.
  • Option to attach/detach contacts from the alarm list screen as well.

UPDATE
The contacts list is being read after the user presses the attach contacts button on the create alarm activity. However we need to create our own listview for contacts selection cause the android built in one only allows the selection of one. (Unless there are arguments we can pass but I didn't check this).
Right now we are populating a new activity by querying the contacts and for each contact we create a list view item for them that has a check box on it.
There is a bug querying and parsing through the contacts with the cursor rn. So once you fix that the activity should have all the contacts which they can pick multiple. Get the multiple selection (we only need display name and phone number) and return it the create alarm activity.

The activity should see that there are now contacts attached and display below the attach contacts button an option to provide context and a switch to provide awake time.

Creating the alarm will put the contact info in the appropriate alarm attribute (need to add to data model still).
...

Firebase Database & File Storage

Database

Use the Firebase documentation to set up the proper database configuration. (This is only for saving Friends list and groups list)

  • Going with Realtime database option.
  • https://firebase.google.com/docs/database/android/start/
  • Save/update a friend from friend list
  • delete of a friend from the friends list.
  • Implement the save/update/delete of groups.
  • Implement the save/update/delete of NapAlerts
  • Save/update/removal of friend requests.

File Storage

Saving the alarms/user settings locally requires saving to a file.

NapChatController

We may change settings file to be stored in database depending on what it entails like block list or muted friends.

  • Implement save/update user settings to file.
    • Create (TBT)
    • Save
    • Load
  • Implement save/update/delete user created alarms to file.
    • Create user alarm file . (TBT)
    • Save alarms (TBT)
    • Load alarms
  • Need to assert that the user settings and alarms are only returned if the proper user is currently signed in. If a brand new user is signed in we create a new directory for them.
  • Delete data for a user when they delete their account. (TBT)

Documentation and Testing

You are responsible for javadoc and unit/instrumentation testing for all classes/methods you create.

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.