Skip to content

yunpengn/ding-food

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ding!

Platform iOS Swift 4 compatible

Ding! and Ding! Stall is your best choice to browse, order, collect and review food in NUS.

Project Setup

  1. Clone the repository into your computer locally (assuming SSH key has been setup).
git clone git@github.com:yunpengn/ding-food.git
  1. Notice that there are two Xcode workspaces within this repository, located in the folder ding and ding-stall respectively. In addition, there is a folder ding-base, which is used to act as the base library (i.e., a CocoaPod) for this project.
  2. Make sure you have installed CocoaPods on your computer.
  3. Now close all Xcode windows which have been opened.
  4. Install dependencies for the ding workspace.
cd ding
pod install
  1. Install dependencies for the ding-stall workspace.
cd ding-stall
pod install
  1. Now, you have all dependencies installed and are ready to go.
  2. Open your Xcode and click Open Another Project..., select ding.xcworkspace to open the first workspace, or select ding-stall.xcworkspace to open the second workspace.

Project Structure

UML Class Diagram

Repository Workflow

  1. We are using feature branch workflow rather than fork workflow.
  2. Whenever you are trying to fix a bug or add a new feature, created a new branch whose name describes the purpose clearly.
git branch <new_branch_name>
git checkout <new_branch_name>
  1. Push this new branch to the remote repository.
git push origin <new_branch_name>
git branch --set-upstream-to=origin/<new_branch_name> <new_branch_name>
  1. Since we encourage you to always use a new branch each time, the branch should be deleted (using GitHub interface) after the PR is merged or declined. Don't worry, GitHub uses soft delete, we can restore the branch later.
  2. To avoid some merge conflicts and due to many other factors, we ignore the Pods/ folder.
  3. Whenever you open a PR, please assign it to yourself (or anyone else if appropriate). Then, ask someone else to do PR review by assigning him/her as the reviewer.

Setup Global gitignore

To avoid committing OS-specific files into the remote repository, you should setup the global gitignore file on your computer:

echo .DS_Store >> ~/.gitignore_global
git config --global core.excludesfile ~/.gitignore_global

Troubleshooting

Could not build Objective-C module 'XXX'

This is because the building order of certain libraries is troublesome. To solve this problem,

  1. First ensure you have run pod install to install or update all dependencies to the latest version.
  2. Build (rather than direct run) all frameworks once (by pressing Command+B).
  3. Now, try to run the application. It should work.