Skip to content

Starup is an iOS app that connects startups, investors and collaborators

License

Notifications You must be signed in to change notification settings

marriagav/starup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Starup

Starup is an iOS app that connects startups, investors and collaborators

Original App Design Project

Table of Contents

  1. Installation
  2. Overview
  3. Features
  4. Screenshots and Demo
  5. Product Spec
  6. Wireframes
  7. Schema

Installation

  1. Clone this github repository on your local machine git clone [email protected]:marriagav/starup.git
  2. Go to the starup directory with the command cd starup
  3. Open the project in xcode by running the command open starup.xcworkspace/
  4. Add the Keys.plist file to the project, with the following keys of the API's (their values are also needed):
    • parseAppID
    • parseClientKey
    • paypalClientID
    • linkedinAppID
    • linkedinSecret
  5. Add the GoogleService-Info.plist file to the project
  6. Run the project from xcode

NOTE: installing the pods through the podfile is not necessary, as they're already included in the repository.

Overview

Description

Starup is an application that allows startups to connect with investors and independent workers. There are three user roles in this app:

  • Ideators: can post information about their startups and network for "sharks" or "hackers".
  • Sharks: can scroll and search for different startups, connecting with "ideators" and potentially investing in their startups.
  • Hackers: similarly to sharks, they can search for startups, but rather than investing in them, they can apply to join the project as independent workers.

App Evaluation

  • Category: buissness and employment.
  • Mobile: it will be a mobile experience, from their phones, users will have access to all the funcitonality of the app.
  • Story: allows startups to grow, as well as offering users opportunities to invest.
  • Market: anyone that falls into either of these three categories: has any startup ideas, has any skills and interest to participate in a startup, has interest and means to invest in a startup.
  • Habit: ideators can post as many startup ideas as they want, hackers and sharks can explore endless startups in any category or buissness that exists.
  • Scope: it is planned to start as a simple app where networking happens around startups, just posting and connecting people.

Features

SDK/Database integration

  • Integrated Parse as the main database for my project, designing the database and storing users, posts, connections and starups.
  • Integrated Firebase as a secondary database for messaging, using the ChatsSDK (https://chatsdk.co/).
  • Linkedin Integration (#28)
    • Implemented sign in with Linkedin functionality, were the user can authenticate themselves, with the use of the Linkedin API, in order to create their Starup account.
      • This feature also allows users to use their Linkedin names and profile pictures when they log in with Linkedin.
  • Paypal integration (#29)
    • Added PayPal integration so that users can make investments through the Paypal API, using the sandbox environment and a sandbox account.

Difficult/ Ambiguous Technical Problems:

  • If a user has Linkedin authentication, they will be able to post both on Starup and on Linkedin if they wish to do so.
  • Messages (#39)
    • Users can manage their conversations: add users, remove users, delete messages, delete conversations, etc.
    • After a new starup is created, a groupchat will be automatically created with all the members of that starup.
  • Search (#31)
    • Built a graph data structure in the server to measure "closeness" between users.
    • User search is reusable (everything goes through the same graph) and It has been added on two view controllers: the profile view controller and the add collaborator view controller.
    • When the user makes a search, a local graph will be traversed looking for users that match the search.
    • Sectioning: in which "recommended" means people that are really close to you, "you may know" is people somewhat close to you and "discover" is people you don't have any type of connection with.

Visuals and interactions

Screenshots and Demo

Find the demo video here: demo video

Find the presentation here: demo presentation

Screenshots

Product Spec

1. User Stories (Required and Optional)

Required Must-have Stories

  • Profile creation / authentification
  • Being able to post and navigate startups
  • Login and signup
  • Being able to click on a startup to see its details and interact with it
  • Persistent storage of users session
  • Profile view: clicking on a user to see their profile
  • Being able to see what other people are posting and make posts yourself
  • Invest in a starup with Paypal
  • Connecting the app to the Linkedin API.
  • Search bar to filter users when adding them to a Starup

Optional Nice-to-have Stories

  • Search bar to filter startups
  • Search bar to filter posts
  • Edit starups to add new collaborators to them
  • Messaging functionality

2. Screen Archetypes

  • Login screen
    • Profile creation / authentification
    • Login and signup
    • Linkedin authentication
    • Persistent storage of users session
  • Home feed
    • Being able to see what other people are posting (statuses)
  • Compose post
    • Being able to make a status post
    • Being able to post to Linkedin
  • Starups tab
    • Being able to navigate starups
  • Details tab
    • Being able to see more information about a startup
    • See the current investment of the starup
    • See starup collaborators
  • Invest tab
    • Select amount to invest and invest
    • Invest on a specific starup
  • Compose starup
    • Post a new startup
    • Edit an existing starup
    • Add collaborators to your starup
  • Profile tab
    • See and edit your profile
    • See other profiles
    • Search for profiles
    • See a users posts and starups
  • Search tab
    • Search users
    • See users sectioned in different categories deppending on closeness
  • Chats tab
    • Send messages to other users
    • Create new conversations
    • Remove conversations
    • Create groupchats

3. Navigation

Tab Navigation (Tab to Screen)

  • Home feed
  • Starups tab
  • Chats tab
  • Profile tab

Flow Navigation (Screen to Screen)

  • Login screen
    • Home feed
  • Home feed
    • Compose post (tap on new post button)
    • Profile tab (tap on profile pictures)
  • Compose post
    • Home feed
  • Starups tab
    • Details tab (tap on post)
    • Compose starup tab (tap on new starup button)
  • Compose starup tab
    • Starups tab
    • Search tab
    • User tab
  • Details tab
    • Profile tab (tap on profile pictures)
    • Invest tab (tap on invest button)
    • Edit starup tab
    • Chats tab
  • Profile tab
    • Details tab (tap on starup)
    • Chats tab
    • Search tab
  • Chats tab
    • Profile tab

Wireframes & Mockups

Login screen

Home feed

Starups tab

Profile tab

Compose post

Details tab

Compose starup

Invest tab

Interactive Prototype

Prototype

Schema

Models

Model: User

Property Type Description
objectId string unique id for the user
createdAt DateTime date when user was created
updatedAt DateTime date when user was updated
username string unique username of the user
firstName string first name of the person that owns that profile
lastName string last name of the person that owns that profile
normalizedUsername string normalized username
normalizedFullName string normalized fullname
profilePicture string name of the person that owns that profile
userBio string user biography
userRole string short user role to show beneath their profile (For example: iOS software engineer)
password string password for login
email string user email
linkedinAuthentication BOOL if the user is authenticated with Linkedin
chatsId string the user chats id

Model: Collaborator (catalogue)

Property Type Description
objectId string unique id for the collaborator
createdAt DateTime date when collaborator was created
updatedAt DateTime date when collaborator was updated
user pointer to user the user that participates in the starup
starup pointer to starup starup in which the user participates
typeOfUser string role that the user has in that starup (shark, ideator, hacker)
ownership numbert % of starup owned by the collaborator

Model: Starup

Property Type Description
objectId string unique id for the starup
createdAt DateTime date when starup was created
updatedAt DateTime date when starup was updated
starupName string the name of the starup
starupDescription string description of the starup
starupCategory string category of the starup (for example: software, design, etc.)
operatingSince DateTime Date when the starup started operating
sales number amount of money that the starup has generated in USD
goalInvestment number goal investment amount in usd
currentInvestment number current investment amount in usd
ownershipPercentForInvestment number percentage of the company to give in exchange for the goal investment amount
imageOfStarup file image of the starup

Model: Post

Property Type Description
objectId string unique id for the post
createdAt DateTime date when post was created
updatedAt DateTime date when post was updated
updateStatus string update status of the post (for example: "looking for starups", "posted a new starup", "invested in a starup"
contentOfPost string text content of the post
statusImage file image of the status

Model: UserConnection

Property Type Description
objectId string unique id for the UserConnection
createdAt DateTime date when UserConnection was created
updatedAt DateTime date when UserConnection was updated
closeness number closeness value between the two users
userTwo pointer to user pointer to one of the users
userOne pointer to user pointer to the other of the users

Networking

Screen: Login

CRUD HTTP Verb Description
Create POST create a new user/registration
Read GET login the user

Screen: Homefeed

CRUD HTTP Verb Description
Read GET get the latest posts

Screen: Starups tab

CRUD HTTP Verb Description
Read GET get the latest starups

Screen: Profile tab

CRUD HTTP Verb Description
Read GET get the user information
Update PUT edit the user information

Screen: Compose post

CRUD HTTP Verb Description
Create POST post the post

Screen: Compose starup

CRUD HTTP Verb Description
Create POST post the starup

Screen: Details tab

CRUD HTTP Verb Description
Read GET get the starup information

Screen: Invest tab

CRUD HTTP Verb Description
Read GET get the starup information
Update PUT make an investment

About

Starup is an iOS app that connects startups, investors and collaborators

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published