Skip to content

orhun-kolgeli/Capstone

Repository files navigation

DevMatch

Overview

Description

  • Category: Matching app
  • Mobile: Native Android app
  • Story: Matches nonprofit organizations and businesses with students and professionals willing to build a website or app for a nonprofit for their portfolio.
  • Market: Any nonprofit and any developer may benefit from the app. The organizations can find developers to build their app and developers can get real-world experience for their portfolio.

Product Spec

1. Features

  • Both nonprofits and developers can sign up and log in
1-register.mp4
  • Developers can scroll through the list of projects posted by nonprofits
  • Developers can apply to build a posted project by opening up a detail view of the project
5.-.apply.mp4
  • Developers can edit their profile
2-dev.profile.mp4
  • Nonprofits can scroll through the list of all developers
  • Nonprofits can invite a developer to build their project by opening up a detail view of a developer's profile
4-.invite.mp4
  • Nonprofits can post their web, iOS, Android, or other projects
8-.upload.project.mp4
9-switch.projects.mp4
  • Developers can filter projects
3.-.filter.mp4
  • Developers can receive a notification when a nonprofit invites them
  • Nonprofits can receive a notification when a developer sends an application
  • Developers can showcase their GitHub projects on their profile

2. Screen Archetypes

  • Login Screen
    • User can login
  • Registration Screen
    • User can create a new account
  • Nonprofit search screen
    • User (developer) can see the nonprofits' posted projects
  • Developer Details Screen
    • User (nonprofit) can invite a developer to build their project
  • Project Details Screen
    • User (developer) can send an application to a nonprofit
  • Developer search screen
    • User (nonprofit) can see all the developers and reach out to them
  • Edit Profile Screen
    • User (developer) can set up or update their profile
  • Compose Project Screen
    • User (nonprofit) can post a project

3. Navigation

Tab Navigation (Tab to Screen)

  • Log in
  • Register
  • For developer
    • Search project
    • Set up profile
    • Project detail view
  • For nonprofit
    • Search developer
    • Post project
    • Developer detail view

Flow Navigation (Screen to Screen)

  • Login <=> Register
  • Login <=> Search screen
  • Project search screen <=> Set up profile screen
  • Developer search screen <=> Post project screen
  • Developer search screen <=> Developer details screen
  • Project search screen <=> Project details screen

Schema

Models

User

Property Type Description
objectId String unique id for the user (default field)
createdAt DateTime date when user is created (default field)
updatedAt DateTime date when user is last updated (default field)
email String email address of the user
username String username of the user
name String full name of the user
password String user password
organization bool false if developer; true if organization

Project

Property Type Description
objectId String unique id for the project (default field)
createdAt DateTime date when project is created (default field)
updatedAt DateTime date when project is last updated (default field)
type String project type, i.e., iOS, Android, Web, or Other
description String description of the project
image File image describing the project, e.g., mockup
user Pointer to User organization that owns the project

Developer

Property Type Description
objectId String unique id for the developer (default field)
createdAt DateTime date when developer profile is created (default field)
updatedAt DateTime date when developer profile is last updated (default field)
bio String bio of the developer
github String GitHub username
skills String web or mobile development skills
user Pointer to User associated user

Networking

Example network request

  • Search Project Screen
    • (Read/GET) Query all projects
      ParseQuery<Project> query = ParseQuery.getQuery(Project.class);
      query.setLimit(LIMIT);
      // Order projects by creation date
      query.addDescendingOrder(CREATED_AT);
      // Start an asynchronous call for projects
      query.findInBackground(new FindCallback<Project>() {
          @Override
          public void done(List<Project> projects, ParseException e) {
              if (e != null) {
                  Log.e(TAG, "Issue with getting projects", e);
                  return;
              } else {
                  Log.i(TAG, "Successfully retrieved projects");
              }
          }
      });

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages