This is an application made for iOS platform.
- Swift - Framework
- CocoaPods - Dependency Manager
- Synx - File manager
- Balsamiq - Mockup Program
- Draw.io - Diagramming platform
- StarUml - Diagramming platform
This tool is used to download and manage dependencies used within the application. It uses a PodFile that can be modified to add more dependencies if needed. Thesee dependencies and CocoaPod related files are version controlled to get rid of the need of having to download the dependencies yourself on each computer.
$ sudo gem install cocoapods
$ pod install
Run in your project directory after modifying Podfile to include dependencies that are wanted.
This tool is used to match the project folder to the xcode groups represented in the project nagivator. By default the file structure shown in the project explorer in Xcode does not modify the actual file structure stored in your drive. Use this whenever adding/modifying files in the project BEFORE merging into GIT.
$ gem install synx
If you run into permission error run as superuser (sudo)
$ synx ../<project name>.xcodeproj
Run synx on the project.xcodeproj file to reformat the file structure to the project nagivator structure.
This tool is used to create mockups for Mobile applications.
When working on a part of the project make sure to:
- ALWAYS create an ISSUE with the appropriate tag and add any relevant people as watchers.
- ALWAYS work on a different local branch, DO NOT push any changes directly to master. Branch naming convention / ex. fiveletter/login_screen
- ALWAYS create pull requests (PR) with an ISSUE attached to the PR.
- ALWAYS squash commits before merging to MASTER. This will allow us to manage commits better on MASTER
- ALWAYS rebase from latest MASTER before merging to MASTER.
- ALWAYS get approval from at least one person before merging into MASTER
Following these guidelines will allow us to catch merge conflicts and reduce the amount of work we do when trying to resolve errors within MASTER.
- Users can navigate through the app regardless of login credentials
- Users can not post any type of rating for a bathroom while not logged in
- Users will have the option to login from a SETTINGS page (USer profile button), the settings page link should be available all the time.
- Users will have to sign in using their Yelp credentials.
- Users will be able to rate bathrooms when they are signed in.
- Users will be able to create new bathroom locations when they are signed in.
- Users will be able to create new bathroom locations.
- Users can only create new bathrooms if they allow access to their GPS data.
- Bathroom names shall be decided by the user per the following steps:
- User clicks on NAME field
- App brings them back to map and highlights businesses and landmarks associated with bathroom
- User selects associated business or bathroom
- If none the user wishes, user clicks OTHER and types in a name
- Users shall be able to search an area for a bathroom
- Users may provide an address for which to view bathrooms in the surrounding area
- Users may view list of bathrooms around them.
- Users may view markers of bathrooms around them on a map.
- Users may filter searches for bathrooms based on flags.
- Users shall be able to flag a bathroom as non existing.
- Users shall be able to flag a bathroom as hard to find.
- Users shall be able to flag a bathroom as paid.
- Users shall be able to flag a bathroom as public.
- Users shall be able to rate a bathroom with a star rating
- Users shall be able to comment on a bathroom if they provide a star rating for it.
- Users shall be able to see full details about a bathroom in one screen.
- Users shall be able to see the location of a bathroom.
- Users shall be able to see the rating of a bathroom.
- Users shall be able to see the flags of a bathroom.
- A bathroom listing with a ratio of non existing flags to reviews > 2 shall be marked as non-existent.
- A bathroom listing with a ratio of hard to find flags to reviews > 1 shall be marked as hard-to-find.
- A bathroom listing with a ratio of paid flags to reviews > .5 shall be marked as paid.
- A bathroom is by default flagged as public.