Skip to content

A native iOS application, linking together CSUF students

Notifications You must be signed in to change notification settings

dguido1/friend-finder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 

Repository files navigation

           alt text

Friend Finder

It's time, link-up with CSUF peers now

a Native iOS application built with SwiftUI

Created by:

  • David Guido
  • Pierce Findlay
  • Kayla Nguyen

    For CPSC 362 (Software Engineering) at California State University Fullerton
    Fall 19'




Table of contents



Overview

Allows CSUF student users to:

  1. Access the application using CSUF domain credentials

  2. Create student or organization account using the following:

    • Username
    • PW
    • E-mail
    • First name, Last name
    • Major
    • CWID
  3. Log-in using a previously created student or organization account

  4. Create event:

    • Student Pick-Up Group
      • Study group
      • Meet location
        ie. Car-pool parking location, club giveaways
    • Organization Event
      • i.e. Blood drive, New faculty location, Weekly club meetings
  5. Search for clubs & organization events

  6. Maintain a student or organization profile

  7. Send or receive notifications corresponding to subscribed content with the ability to turn on/off in settings
    ie. If a student wishes to receive new information regarding a club or organization on campus, they can simply select ‘subscribe’ on the top right portion of any club-profile to start receiving notifications.



Design

Opening the application

login

Choosing a student or an organization account

choose2

Creating a student or an organization account

account org-account

Students can subscribe to an event or even host

student-home

Students can create a pickup group for a study session or misc reasons such as "Chest day, looking for spotter"

pickup

Organizations can create events with a number of handy parameters including name, date/time, location, admittance type (i.e. Chess club students only) and price

create-event

View the full AdobeXD wireframe here: https://xd.adobe.com/spec/25829805-09c1-433d-7d73-c29368a3b5de-53b3/grid



Development

Custom Views

Event Item Button

            alt text


Event Item Card

            alt text


Notification Item

            alt text


Profile Info

            alt text


Database

Notes:

  1. Created Google Firebase relational-database

  1. Added rules to dashboard compiler
    • Allows user access to only their own data, providing minimum security while testing

      {
        "rules": {
          "$uid": {
            ".write": "$uid === auth.uid",
            ".read": "$uid === auth.uid"
         }
       }
      }
      

  1. Added Firebase to iOS Application

    • Adds Firebase libraries to project so we can access them
    • Contains endpoint and configuration data

    Steps:

    1. Registered App using Bundle ID: com.csuf.friend-finder
    2. Download / import plist file
    3. Add Firebase SDK:
      1. Install Cocoapods

        • Provides a standard format for managing external libraries
        sudo gem install cocoapods
      2. Open project folder in terminal, then create pod file using:

        pod init
      3. Open file in text editor and add this script:

        pod 'Firebase'
        pod 'Firebase/Auth'
        pod 'Firebase/Analytics'
        pod 'Firebase/Database'
        
      4. From now on,
           Open: friend-finder.xcworkspace
           Instead of normal xCode project: friend-finder.xcodeproj

      5. Added the following initialization code to AppDelegate.swift

         import Firebase
           func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions:
               [UIApplicationLaunchOptionsKey: Any]?) -> Bool 
               {
                   FirebaseApp.configure()
                   return true
               }

        ezgif com-video-to-gif (2) ezgif com-video-to-gif (3)



Resources

  1. SwiftUI Docs (Apple)


Diagrams

Use Case Diagram

FriendFinderUseCase05

CRC Model

CRC Modeling

Activity Diagram

ActivityDiagram-362 -  Blank UML

Database ER Diagram

Database ER Diagram Example (Crow's Foot)

State Diagram

UML State Machine Diagram Example

Sequence Diagram

User Sequence Diagram




Thanks for reading!

If you like what you see give this repo
a star and share it with your friends.

Your support is greatly appreciated!



About

A native iOS application, linking together CSUF students

Topics

Resources

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •