Please enable JavaScript.
Coggle requires JavaScript to display documents.
Location Management Rules (Location Uploading
The user will always be…
-
Intricacies of Features
-
Posting a new event
Event types: 1. Anything Cool
- Food
- Arts/Music/Culture
- Party
Use a picker to choose
-
For fun, holding down on the event button will display the heart animation
-
-
Notification when "[#]People are talking about your event!"
(From chat discssion occuring))
"Your event is getting popular!" (From Likes)
-
-
-
-
Events screen
Scroll is infinite, though the max distance can be set in the code [tapping on the events navigation button will return the user to the top]
If a user uses the map to move to a new area, new search results will appear in the events section based upon the new area (after swiping back to events/assuming the map has not been recentered etc)
When clicking an event, it automatically scrolls to the top of the list and then the content drops down
Users can click on the same box at the top in order to close the details and return to the events screen
-
Double clicking an event will initiate the heart burst animation. (after the like command is successfully initiated from double clicking an event, the animation appears where the user tapped) #
Events screen will feature swipeable card animations for events
#
-
-
Account Creation
Profile Picture Upload Inspection: Sightengine #
-
-
Phone numbers and email addresses must adhere to the real formats to help prevent fakes (example @ symbol and proper number of phone number digits/country code if needed)
-
-
After signing up - user is automatically logged in and the login information will be permanently saved to the device
Reports
All details such as usernames, event names, etc are recorded automatically after the person clicks the report button attached to their message
Users don't have to enter details to submit a report in this case - just press send on the report page
Misc
If a user cliicks "Live Events" on a profile when there are 0 events, an error will popup teilling users to "post what's happening now"
-
-
-
Tweaks before fiinal
Ensure that girl's mouth is not covered on onboarding screens. May need to move headings down slightly.
"popularity so more users connect with you" not "so that more users..." on popup for sharing content
People Screen
Double clicking a person's icon will initiate the heart burst animation. (after the like command is successfully initiated from double clicking a user, the animation appears)
Who's viewed me
If a user is already following you, it will say "Follow Back" rather than "Follow"
-
Capturing images/Videos
Holding down the capture button will enable video to be captured. A blue animation should be used to fill up the button with color in clockwise rotation
-
Algorithms
-
-
Events screen
Priority to appear at the top:
- Whether the user has previously seen the event (priority for new things),
- Distance (priority for close things),
- Growth/virality (how quickly its receiving likes or follows), 4. How recently the post was made,
5. Whether the user who created the event has shared it with anyone
- The popularity of the user who posted the event (number of likes*followers)
- How many likes it has
- Number of pictures posted in the event
-
Main Map
Pool of events = the top events that are on the events screen
- Randomly show the top events (based on the events algorithm) that have not been seen on the map before (consider density limits)
- If a user engages in the chat for an event, leave the event on the screen. The event will then change color to blue.
3.If the screen becomes too dense with events they are talking about, then the events that have not been viewed recently can be hidden so new things can be showm
-
- Randomly show the top people (based on the people algorithm) that have not been seen on the map before (consider density limits)
Advertisements
Need to be able to use code to set the number of ads that appear #
Make it so that no ads appear during the first 3 sessions of the app - so users get acclimated. Then we show very few ads after that
-
Maximum number of ads that will appear during a given session length: (example 1 ad at 1 minutes and 2 at 3 minutes)
-
-
-
-
People
Priority to appear at the top:
- Whether the user has previously seen the other user (priority for new people never seen),
- Distance (priority for close people),
- Whether the user is new to the app
- Growth/virality (how quickly the person is receiving likes or followers)
- The user's popularity (Likes*Followers)
- How recently the user was online (Also: 48 hours max since last active)
Refreshing content on the events/people screens/sidebar/map will occur at a set frequency. (for example every 30 seconds) [unless the user manually refreshed] #
The updates that the user sees on the screen need to be smooth and incremental rather than all at once. For example, events update one at a time as new ones are created, rather than changing every event at the same exact time
-
Search for locations, events, and users
-
Use simple algebraic equations when best/possible. For example, each of the factors in a list can be considered as having a weight. The score of a particular entity (Event/Person/etc) could then essentially be a weighted average score of all factors. This is then compared to other items
-
-
Perform calculations on the server as much as effectively possible in order to maximize speed on the client side, maintain security, and prevent long-running client-side processes.
For events and people, one possibility is for the server to give each event/person a score (attached to user or event data). Then, a separate and live calculation can be completed to address interactive calculations such as distance from user/whether the users have seen each other before etc.
Overarching Principles
Basic Language filtering #
-
-
Abuse Detection
Posting too many messages one after another will send a low-level flag for the user. Only the first two messages will be posted and the rest will be ignored (ghost ban).
Ghost Banning
If a user or their event received an excessive amount of reports or blocks, then the event or the uer will be ghost banned
An administrator will have to approve the content before it goes into effect and the user is cleared
In the event of a ghost ban -- actions done on the app will not take affect or be seen by other users.
users will get flagged in the system if they post too many events in a short span of time or post multiple events very far from them
If a user creates too many accounts in a short period of time, the app will monitor device id
-
-
User can only report 3 things every 10 minutes. This prevents abuse from a user acting as a moderator
More popular users (followers/time using the app) are less likely to get ghost banned etc due to more evidence as a trusted user. #
-
Backend/Frontend
Video and Image compression as necessary to minimize network bandwidth demands. For Example WebP for images
Compression of data on the server means that downloading images (including profile pics) and other content will use minimal data usage. This will help make the user experience smooth and prevent excessive data usage (including when users view their data usage by app)
-
In DB, included data on when user was last active
-
-
If a user clicks one of the three navigation buttons while they are already on the page, it will refresh the data and bring them back to the top of the page/the default view
-
Content for refresh is cached and then instantly refreshed to avoid the split second period where there is no content on the screen
When transitioning backwards/to the previous page, the app will remember where in the page you were
Smooth navigation animation between pages. Incorporate "bounce" to make them more dynamic and realistic. This includes drop downs, popups, likes, follows, etc
-
ListView RowActions: Smooth animation also includes when users swipe left/right on events and messages to access the options menu. (ex: similar to native iphone)60FPS Interactions
-
-
On event and people screens, the navigation bars at the top and bottom will remain fixed (as the parent). However, the content in the middle is spring constrained to not cross the boundaries of the top and bottom nav bars.
If the user swipes from the edge of the screen at the top or bottom of the screen, they will be able to quickly navigate between the 4 main screens of the app
-
Events Screen Animation
If a user swipes right on a saved event, it will move back to the regular section and no longer be saved.
If an event is swipe right, it will persist on the map in the color blue. "Event saved to map" popup message
If an ad is swiped right, the user will be directed to the ad URL (via in app browser overlay)
A small blue line on the left of the event highlights those that are saved at the top (swiped to save, created by user, or that the user is "talking" about (engaged in chat)
-
After swiping right, the card will be saved at the top of the events screen. However, the user will have to manually pull the other events down after the page is refreshed in order to see all saved events - the page automatically scrolls down so only the first saved event is shown (to still enable new events to be discovered)
-
The animation will be similar to the one used for popups except that it will only move horizontally. Animation makes it fun to drag items off the screen. The user will have to swipe horizontally for a distance to activate so that it doesn't get confused with normal scrolling.
When the user swipes left, they will have the option to share the event. [same as mockup photos except without report button]
Animation
After clicking an event on the map and opening the map event details dropdown, an upward swipe can be used to close those details, cancel the poi animation, and return to the normal map view
App login screen has an animation for the swipe to learn more text. This encourages the user to use onboarding process
Security/Privacy
Settings
Delete account permanently will fully remove all information from server. If necessary, keep any info necessary for legal purposes etc (disclose in privacy policy if so)
Disabling location sharing will prevent the user's location from being uploaded to the server. However, the user will still be able to see their own location on the map and post events with exact addresses.
-
-
-
-
-
Login:
Login information will persist on the device indefinitely
All 3 login methods will automatically save data so the user doesn't ever have to login again
-
Sharing
Deep linking will be used to enable users to directly access content even if they don't have the app yet
-
-
-
-
-
-
Coding
Frequent Commenting with a standard format to help make code easy to read and aid updates/problem solving
-
-
-
-
-
-
Map Settings
Launch Sequence
When the app is first opened, the view will automatically fly through the top 2 events and top 1 person nearest to the user (camera stops at each point. This gives users a high level understanding of the coolest things happening nearby.
As each event is focused on, the details of the event will popup
The fly through will complete quickly ie spending 1 second on each item and completing within 5 seconds total
-
-
-
Map Zoom
-
Pressing the center, map-navigation button on the app (after already on the map screen) will recenter the map. The zoom level will be wide enought to see most of a city (ie a 5-6mile wide view)
If it works smoothly, zooming past a certain level will display either building extrusions or a merged satellite view
Double click to like
If a user double clicks an event or person icon, then they will like that content
If an event is double tapped, the event detail preview will popup
The animation for changing the number of likes is slow enough for the popup to appear first on the screen. (unless the popup is already visible, then it needs to be more responsive)
A motion.js heart burst animation will appear around the button after double clicking to like an event or person. React Native sensors will be used to adjust gravity at each corner of the device based on tilt. These two tools will be accessed via the react native game engine. They will only be called upon when the screen is double clicked, and the animation will overlay the rest of the app's conent. # #
If the user holds down instead of double clicking, then the animation will continue
-
Physical Features
User picture icons will have a minimum diameter (ie approximately 140 feet - half of a city block) to reinforce the fact that locations of other users are not precise.
When zooming all the way in, the icon will begin to gain transparency
-
After clicking an event to bring up the details, the animated set of circles will appear around the event.
(Similar to a radar or wave flow)
-
Design
The colors on the map as well as settings for the size of objects etc will be required to be customized to create a custom, attractive map. (Done through the MapBox online setttings)
Integrated APIs
Firebase
-
-
-
-
-
-
-
-
Algorithms are on backend will help avoid losing app reviews for simple things like changing the number of ads seen
-
-
-
Need to be able to understand how people are using the app, what features are possible, etc
Sightengine
-
User profile images uploaded by users (pictures that aren't from facebook or instagram) will be inspected automatically by sight engine
If the inspection fails, the user will receive an error message to "please try a different image appropriate for the community"
After three failed attempts, the user will have to enter a captcha in order to try again
Settings for Profile Images:
- Nude Detection
- Weapon/drug detection
- Minor detection
4.No Artificial text or watermarks
- Image quality
- Fraud detection
High level of certainty for all items
Images/videos that are reported by users can be saved in a que and sent to sightengine to automatically determine what to do with the image
If sight engine has a low level of certainty about the existence of an issue or it passes sightengine, the image will still be manually checkedby an administrator
If sightengine finds a high probability of an issue, the image is deleted and the user is flagged
Images uploaded by the app team are automatically ignored if a user reports them
(Have a whitelist of usernames to ignore reports for)
Subsequent issues with a user after sight engine deletion (within a certain time frame ie 1 monthy) will result in auto ghost ban requiring admin review #
Settings for Misc reported Images/videos [event content]:
- Nude Detection
- Weapon/drug detection
- Image quality (Extra-high certainty== exception)
- Fraud detection
High level of certainty for all items
Appodeal
Controlling ad frequency # #
Specs
-
-
Split ads into 3 placements for the 3 ad locations in the app (view stats for each placement independently) #
-
-
-
-
-
-
React Native
-
-
-
Simplify future translation process through use of a language localization library Localization
-
-
-
-