- 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.
- 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
- 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
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
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) |
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 |
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 |
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 |
- 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"); } } });