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!
- Commercial Video made for CodePath Nationals Competition
- Live Demo at the University at Texas in San Antonio
- Detailed Feature Demo Presentation
[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.
- 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
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
- 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
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
GIF created with LiceCap.
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 |
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 |
- 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
- TicketMaster API
- Google Maps API
- Parse database hoted by back4app