Skip to content

Rileydk/Join

Repository files navigation

Join: 找夥伴

Join: 找夥伴(Finding Partners) is an app that enables you to share your ideas and find collaborators, showcase your skills and portfolios, and start a one-on-one chat or create a group chat with project team members.

Tables

Features

Create Personal Profile and Portfolio

  • Edit personal information, including a summary and all the techniques you equipped.
  • Provide your interests. The app will recommend you the projects that fit your interests.
  • Enrich your portfolio by uploading images, scan substantial works and convert them into images, or paste the url of your works to show what you've made.

Find Ideas

  • Find great ideas that you're interested in or fit with your skills.
  • Contact with the project contact to ask about the details.
  • Apply for the position right away and track what projects you've applied for.
  • Saved the projects you're interested in, and read them again afterward.

Find Partners

  • Post your ideas and the skills you need to fulfill the idea to find the one that fit with the position.
  • Bind your team with your projects.
  • Track who had applied for your projects.
  • Accept application to join a new member into your group.

Communicate and Collaborate

  • Send, receive and accept friend requests from the community of Join: 找夥伴.
  • Start a one-on-one chat with strangers or your friends.
  • Create a group chatroom with your friends and communicate with a whole team.
  • Establish a working group chatroom based on your team instantly.

Techniques

  • Fetched web preview images and created rich links through LinkPresentation.
  • Scanned documents and converted them into images using VisionKit.
  • Created photos uploading feature using PhotoKit.
  • Ensured data assembled correctly with GCD and prevented race condition with NSLock.
  • Achieved flexible UI and easily identifiable data combined with cells using UICollectionViewDiffableDatasource and UITableViewDiffableDatasource.
  • Managed data with Firebase SDK including Cloud Firestore and Storage, obtained real-time messages by adding listeners to Firestore documents.
  • Implemented Sign-in with Apple and Firebase Authentication to offer customized service and data management.
  • Reused views and cells with Xib and Storyboard to avoid duplicated code.
  • Manipulated button state automaically by UIButtonConfiguration.
  • Constructed clean project through MVC design patterns.

Setup Project

The project didn't include the "GoogleService-Info.plist" file for Firebase service, as well as the p8 file and the keys needed for Sign-in with Apple. Thus, if you want to build the project on your own machine, you'll need to add those files into the project.

  1. Clone the project to local

    git clone https://github.com/Rileydk/Join.git
    
  2. Go to Firebase, create a new project, add the generated GoogleService-Info.plist under "Join/Resources" directory of the project, then create Firestore inside your Firebase project.

  3. Go to your Apple Developer account, generate a p8 file through register a new key for sign-in with apple.

  4. Add the p8 file under "Join/Resources/AppleAuth" directory of the project.

  5. Add a "AppleAuthConfig" file, then add content below to the file:

    import Foundation
    
    enum AppleAuthConfig: String, Encodable {
        case p8KeyID = <p8 Key ID>
        case teamID = <Your Team ID>
        case bundleID = <Bundle ID>
        case privateKeyFileName = <p8 File Name>
    }

Libraries

Credit

Some of the icons used in this app was made by authors listed below and was downloaded from Flaticon :

Version

1.1.3

Release Notes

Version Date Note
1.1.0 2022/12/03 First released on App Store.
1.1.3 2022/12/08 Added new features and improve UI.

Requirements

  • iOS 15.0+
  • Swift 5
  • Xcode 13.4.1+

Author

Riley Lai | dakimi07@gmail.com

License

Join: 找夥伴 is released under the MIT license. See LICENSE for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors