Git Product home page Git Product logo

bucketbuds's Introduction

Original App Design Project - README

Bucket Buds

Demo

Video Demo

Table of Contents

  1. Overview
  2. Product Spec
  3. Wireframes
  4. Schema

Overview

Description

Collaborative bucket list app that allows users to create shared bucket lists with their friends and family. Users can schedule bucket list activities and gain inspiration for local and random activities. It helps users plan and reach their fun life goals side by side!

App Evaluation

[Evaluation of your app across the following attributes]

  • Category: Productivity, Lifestyle
  • Mobile: Android only experience, uses camera, photo gallery, and location
  • Story: Allows users to create bucket lists with friends and family
  • Market: everyone, people with friends or a thirst for new experiences
  • Habit: Once users create a list, they will try to finish all of the items.
  • Scope: Focused primarily on collaborative bucket lists, event scheduling, and receiving inspiration

Product Spec

1. User Stories (Required and Optional)

Required Must-have Stories

  • User can sign up with a new user profile
  • User can log in/log out of the app
  • User can add friends (other users) by username
  • User can remove friends
  • User can view their profile, bio, list of friends
  • User can edit their profile information
  • User can create lists shared amongst friends with list descriptions and image
  • User can view all of their bucket lists
  • User can add activities with details (name, description, location, date/time) to a bucket list
  • User can delete activities in the bucket list
  • User can schedule events with the group using the Calendar Provider
  • User can filter bucket lists by completed/active status and sort by alphabetical order/last modified/created at
  • User can get inspiration for activities they may be interested in through the APIs

Optional Nice-to-have Stories

  • User can check if everyone's calenders are free or busy using the Freebusy: query
  • User can upload photos of completed activities into the bucket
    • User can view photo details and which activity
  • Users can chat with the group through on-device messaging or in-app Parse chat
  • When adding friends, user's contacts can provide suggestions
  • User can copy/add over inspiration activities to their lists
  • User can add friends to a bucket list after list creation (through Bucket Requests)
  • User can modify activity details
  • User can route to event locations through on-device Google Maps
  • User can search through their home stream of bucket lists
  • User can search through bucket list for activity
  • User can view friends' profiles
  • User can edit bucket list details
  • User can filter local inspiration activities by mile radius
  • User can select a location for the activity through Google Places Autocomplete

2. Screen Archetypes

  • Login screen
    • User can log in/log out of the app
  • Registration screen
    • User can sign up with a new user profile
  • Profile screen
    • User can view their profile, bio, list of friends
    • User can remove friends
    • User can edit their profile information
    • User can add friends (other users) by username
  • Friends Profile screen
    • User can view friends' profiles
    • User can add friends to a bucket list after list creation (through Bucket Requests)
  • Home Stream screen
    • User can view all of their bucket lists
    • User can filter bucket lists by completed/active status and sort by alphabetical order/last modified/created at
  • Bucket Requests Screen
    • User can add friends to a bucket list after list creation (through Bucket Requests)
  • Create Bucket List screen
    • User can create bucket lists shared amongst friends with list descriptions and image
  • Bucket List Activities screen
    • User can add activities with details (name, description, location) to a bucket list
    • User can select a location for the activity through Google Places Autocomplete
    • User can edit bucket list details
  • Activity Details screen
    • User can delete activities in the bucket list
    • User can schedule events with the group using the the Calendar Provider
    • User can modify activity details
    • User can route to event locations through on-device Google Maps
  • Inspiration screen

3. Navigation

Tab Navigation (Tab to Screen)

  • Profile tab
  • Home tab
  • Inspiration tab

Flow Navigation (Screen to Screen)

  • Login screen
    • Home Stream screen (after logging in)
    • Registration screen
  • Registration screen
    • Home Stream screen (after registering)
    • Login screen (when tap menu item)
  • Profile screen
    • Friends Profile screen (when tapping friend)
    • Login screen (after logging out)
  • Friends Profile screen
    • None
  • Home Stream screen
    • Bucket List Activities screen (when tapping on bucket list)
    • Create Bucket List Screen (when tap menu item)
    • Bucket Requests Screen (when tap menu item)
  • Bucket Requests Screen
    • None
  • Create Bucket List screen
    • Home screen (after creating or back)
  • Bucket List Activities screen
    • Activity details screen (when tapping on activity)
    • Create activity dialog (when tap menu item)
      • Google Places Autocomplete (when editing location)
  • Activity Details screen
    • Google Places Autocomplete (when editing location)
    • Map to location (when tap menu item)
    • Calendar to schedule event (when tap menu item)
  • Inspiration screen
    • Inspo Activity Details Screen
  • Inspo Activity Details Screen
    • None

Wireframes

  • Login and Create Account Workflow
  • Main Workflow

Schema

Models

User

Property Type Description
objectId String unique id for the user (default field)
username String username
password String password
firstName String first name
lastName String last name
email String gmail address
bio String words to describe themself
image File profile picture
userPub Pointer points to user's public user

UserPub

Property Type Description
objectId String unique id for the public user (default field)
user Pointer(User) user who's information is contained in the object
bucketCount Int user's number of buckets
buckets Relation(BucketList) relation to user's buckets
friendCount Int user's number of friends
friends Relation(User) relation to user's friends
email String user's email address

BucketList

Property Type Description
objectId String unique id for the bucket (default field)
name String bucket list name
image File bucket list cover image
description String description of bucket list
completed Boolean false (active), true (completed)
createdAt DateTime date when bucket is created (default field)
updatedAt DateTime date when bucket is last updated (default field)
users Relation(User) relation to users who own the bucket list
activities Relation(Activity) relation to activities in the bucket
userCount Number number of users who own the bucket
activityCount Number number of activities in the bucket
bucketRequests Relation(BucketRequest) relation to users who requested the bucket

Activity

Property Type Description
objectId String unique id for the activity (default field)
name String activity name
description String description of activity
completed Boolean false (active), true (completed)
location String location name
allDay Boolean true if the event is an all day event
startDate Date event Start Date
endDate Date event End Date
bucket Pointer points to bucket list
web String link to the activity web page
eventCreated Boolean true when calender is event created
address String address provided by Google Places autocomplete

BucketRequest

Property Type Description
objectId String unique id for the activity (default field)
fromUser Pointer points to user who sent the request
bucket Pointer points to the bucket the user wants to join
status String pending, approved, denied
receiver Pointer bucket user who approved/denied the request

Networking

List of network requests to Parse by screen

  • Login screen
    • logInInBackground()
  • Registration screen
    • signUpInBackground()
  • Profile screen
    • PUT update user profile info
    • GET get user's profile info
    • PUT add/remove friends
    • GET get user's friends
    • GET search for users by username
  • Friends Profile screen
    • GET get friend's profile info
    • GET get friend's buckets
    • GET get user's buckets
    • GET get bucket requests
    • PUT create bucket requests
  • Home Stream screen
    • GET query for the user's own bucket lists
    • deleteInBackground()
  • Bucket Requests Screen
    • GET get user's outgoing requests
    • GET get user's bucket lists
    • GET get incoming requests for the user's buckets
    • PUT respond to bucket requests
  • Create Bucket List screen
    • PUT create a bucket list
  • Bucket List Activities screen
    • GET query for activities
    • PUT create new activities
    • PUT update bucket list activity count, completed status
  • Activity Details screen
    • PUT modify the activity info
    • deleteInBackground()
  • Inspiration screen
    • None
  • Inspo Activity Details Screen
    • PUT add activity to bucket list

API Endpoints

bucketbuds's People

Contributors

evelynhasama avatar

Watchers

 avatar  avatar

Forkers

santice

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.