Giter VIP home page Giter VIP logo

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 Projects

eventwithme icon eventwithme

Social media app that lets people connect with each other at events via messaging

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.