Giter Club home page Giter Club logo

eventwithme's Introduction

EventWithMe

Table of Contents

  1. Overview
  2. Product Spec
  3. Wireframes
  4. Schema
  5. Feature Demos

Overview

Description

EventWithMe allows people to connect with each other over events. Users find events near them and favorite them to track them and then connect to their favorited event group chats. This app won us 3rd place in the CodePath Nationals competition fall 2021!

App Evaluation

[Evaluation of your app across the following attributes]

  • Category: Social
  • Mobile: No website, just a mobile app
  • Story: Allows users to find others attending concerts and similar events in order discuss events and/or organize meet ups
  • Market: People who go to events including but not limited to theater, concerts, or sports
  • Habit: Habits are formed by keeping users interested and involved in event group chats and notifying users of events nearby
  • Scope: The scope of the app consists of making a messaging platform, implementing multiple APIs, and possibly full deployment.

Tech Stack

  • Android Studio with Java
  • Parse database through back4app hosting
  • TicketMaster API & Google Maps API
  • Android Volley Library for restful client connection
  • Picasso & Glide libraries for image loading

Product Spec

1. User Stories (Required and Optional)

Required Must-have Stories

  • User can create an account and login
  • User can view and change their displayed name, picture, location, etc.
  • User can view a list of nearby events
  • User can favorite events and view their favorited events
  • User can chat with others attending the events
  • User can change password

Optional Nice-to-have Stories

  • User can use phone GPS to detect location
  • User can view other people's profiles
  • User can choose to sort either by most recent or by distance
  • User can privately message people attending
  • User can receive notifications about new messages or new events in their area
  • User can change privacy settings and notification settings

2. Screen Archetypes

  • Login
    • User can login
  • Register
    • User can make a new account
  • Event Stream
    • User can view a list of nearby events
  • My Events
    • User can view events they signed up for
  • Event Detail (Viewing)
    • User can sign up to attend an event
    • User can chat with other attendees
  • Messages
    • User can privately message people attending
  • Profile
    • User can view and change their displayed name, picture, location, etc.
    • User can change password
  • Settings
    • User can change privacy settings and notification settings

3. Navigation

Tab Navigation (Tab to Screen)

  • Search
  • Event Stream
  • Favorites
  • Profile

Flow Navigation (Screen to Screen)

  • Login
    • Event Stream
    • Signup
  • Register
    • Login
    • Event Stream
  • Event Stream
    • Event Detail
    • Favorites
    • Profile
    • Search
  • Favorites
    • Event Stream
    • Messages
    • Profile
    • Search
  • Event Detail
    • Event Stream
  • Messages
    • Favorites
  • Profile
    • Event Stream
    • Search
    • Favorites
    • Login
  • Search
    • Event Stream
    • Favorites
    • Profile

Wireframes

Interactive Prototype

Video Walkthrough

GIF created with LiceCap.

Schema

Models

Event

Property Type Description
eventName String name of an event
location String location of an event
date DateTime date of event
description String description of an event
occupancy String max amount of attendees
venueName String name of venue
eventType String type of event

User

Property Type Description
name String name of an user
username String username of an user
email String email of user
password String password of user
photo image photo of user for profile
location String location of user

Message

Property Type Description
content String content of message
timestamp String time message was sent
username String username attached to message

Networking

  • Login
    • (read/GET) Query user data to verify login from parse database
  • Register
    • (read/GET) user data from
    • (create/POST) create user in
  • Event Stream
    • (read/GET) event data from event API
  • Favorites
    • (read/GET) event data and user data related to event from event API
        ParseQuery<Post> query = ParseQuery.getQuery(Event.class);
        query.include(Event.KEY_USER);
        query.findInBackground(new FindCallback<Event>() {
            @Override
            public void done(List<Event> events, ParseException e) {
                if(e != null){
                    Log.e(TAG, "Issue with getting events", e);
                    return;
                }
    	//When events pulled up with success then list them
                for(Event event : events){
                    Log.i(TAG, "Event: " + event.getEventName() + "Event chat: " + event.getEventChat());
                }
            }
        });
  • Event Detail
    • (read/GET) event data from event API
        ParseQuery<Post> query = ParseQuery.getQuery(Event.class);
        query.include(Event.KEY_USER);
        query.findInBackground(new FindCallback<Event>() {
            @Override
            public void done(Event event, ParseException e) {
                if(e != null){
                    Log.e(TAG, "Issue with getting event", e);
                    return;
                }
                
             	Log.i(TAG, "Event: " + event.getEventName() + ", description: " + event.getDescription() + ", time and location: " + event.getDateTime() + ", " + event.getLocation());           
            }
        });
  • Messages
    • (read/GET) reads messages
    • (create/POST) create message
  • Profile
    • (read/GET) reads user profile
    	ParseQuery<Post> query = ParseQuery.getQuery(Profile.class);
    	query.include(Profile.KEY_USER);
    	query.findInBackground(new FindCallback<Profile>() {
        	@Override
        	public void done(List<Profile> profiles, ParseException e) {
            		if(e != null){
                		Log.e(TAG, "No profile found", e);
                		return;
            		}
    		//When profile pulled up with success then list
            		for(Profile profile : profiles){
               			Log.i(TAG, "Profile: " + profile.getProfileName());
            		}
        	}
    	});
    • (Update/PUT) Update user profile data
    • (delete) delete account

Endpoints

  • TicketMaster API
  • Google Maps API
  • Parse database hoted by back4app

Feature Gifs

Login & Signup

Login & Signup

GIF created with [LiceCap](http://www.cockos.com/licecap/).

GPS Geolocation service with Google Maps API

Geolocation Google Map API

GIF created with [LiceCap](http://www.cockos.com/licecap/).

Event Stream with Ticketmaster API

Event Stream TicketMaster API

GIF created with [LiceCap](http://www.cockos.com/licecap/).

User Profile

User Profile

GIF created with [LiceCap](http://www.cockos.com/licecap/).

Messaging

Messaging

GIF created with [LiceCap](http://www.cockos.com/licecap/).

eventwithme's People

Contributors

ahmet1bilici avatar ballaire avatar commando-brando avatar thebeasknees avatar wgalindo1453 avatar

Stargazers

 avatar

eventwithme's Issues

Project Feedback!

It looks like you did not include the core deliverable for this milestone:

  • Completed user stories checked-off in README
  • Gifs created to show build progress and added to README

Your submission is incomplete until the core deliverable is present. Since the extension period is over, we will no longer regrade any resubmissions made after this date.

Store API data in models

gather needed info from team for list of data for models.
Test each request to ensure proper data is retrieved.

Login & Signup Cont'd

  • add user database data
  • finish login scene
  • create signup scene
  • make logic to check database and either successfully login/signup or display error

My event detail /S4

Ahmet
My Events

  • Set my event list so it only shows RSVP d events
  • Set my events in a way that when the event's date is passed it gets deleted

Project Feedback!

๐Ÿ‘ Thanks for submitting your final GIF walkthrough! It's pretty remarkable when you step back and think about how far you've come in the course. ๐Ÿ‘ We started with a simple tip calculator and ended with a fully functional app that you've built from the ground up.

Make sure to review the demo day tips as these will help you put together an engaging demo. Best of luck on demo day! ๐ŸŽ‰

Project Feedback!

๐Ÿ‘ Nice job on the wireframes! Wireframing is a common practice when building apps as it lets you create a blueprint for the app before writing any code. Having a really good blueprint that you can refer to throughout the rest of the project is a really valuable resource and will make it much easier to split up work across your team.

With the wireframes in hand, you should have a good idea of what your app will look like when you finish the project. Next week we'll jump into the data schema.

My Events & Event Detail

Ahmet
My Events

  • Set up the recycler view
  • Set up the adapters
    Event Detail
  • Set Group Chat button
  • Set RSPV button
  • Set Event Information

User and Profile Updates

  • Make profile fragment look nicer, like an actual user profile
  • Set up email verification for new accounts
  • Set up email password resets if password is forgotten

REST CLIENT SETUP

  • determine API and GET/POST data for application
  • configure key storage in android studio
  • Set up API connection class for using API(?)
  • Set up API test model Class. (CRUD)

Project Feedback!

๐Ÿ‘ Thanks for submitting your progress for this sprint! This is a big milestone as now it's all about adding optionals and additional polish to the app. Next week we go into the final sprint before demo day.

Event Stream

  • configure recycler view
  • configure adapter
  • make custom XML row
  • configure API w/ William

Project Feedback!

๐Ÿ‘ Nice work on getting the data schema defined! Next week we jump into the first implementation sprint. You'll have 3 sprints (one week each) to complete all the required stories for your app and 2 sprints (one week each) to work on optionals and add polish. Let us know if we can help in any way!

My Events & Event Detail /W2

Ahmet
My Events

  • Set up the card view for events
  • Set up the adapters for the events and chat

Event Detail

  • Set adapter for group chat and rsvp button

Profile

  • Configure to show user name upon entry to scene
  • Configure to show password upon entry to scene
  • Configure to show email address upon entry to scene
  • Configure to show user location upon entry to scene
  • Implement ability to take picture or upload picture for profile

Profile Cont'd

  • Configure to show email address upon entry to scene
  • Configure to show user location upon entry to scene
  • Implement ability to take picture or upload picture for profile

Project Feedback!

๐Ÿ‘ Thanks for submitting your progress for this sprint! This is a big milestone as now it's all about adding optionals and additional polish to the app. Next week we go into the final sprint before demo day.

Project Feedback!

It looks like you did not include the core deliverable for this milestone:

  • Completed user stories checked-off in README
  • Gifs created to show build progress and added to README

Your submission is incomplete until the core deliverable is present. Since the extension period is over, we will no longer regrade any resubmissions made after this date.

My Events & Event Detail /S3

Ahmet
My Events

  • Make the design more appealing
  • Add event class to the database and connect it with the user class

Profile Scene Wrap Up

  • Add final profile elements (Locations, DOB, Gender)
  • Finish profile pic adding in EditProfile Scene & save all data
  • Finish change password scene and its input validation

Signup and Login

  • configure user database
  • create login scene
  • create signup scene
  • make logic to check database and either successfully login/signup or display error

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.