Created by Melissa, Zhihong.
An app for organizer and volunteer to find each other easier. For this app, there are two types of users: volunteer and organizer. Organizers can create events. Volunteers can search for events match their interest and skills. Volunteers can post messages regarding a particular event and organizer can response it.
The server created using NodeJs/ExpressJs. Authentication is done by passport basic strategy. Testing is done with Mocha/Chai-http framework.
The server is deplyed to Heroku with Mongolab datastore.
-
USER
To create new volunteer : POST - http://outcharityiosapp.herokuapp.com/api/v1/create_user_volunteer To create new organizer : POST - http://outcharityiosapp.herokuapp.com/api/v1/create_user_organizer To sign in: GET - http://outcharityiosapp.herokuapp.com/api/v1/sign_in
-
Volunteer (:id = email id)
To return volunteer details : GET - http://outcharityiosapp.herokuapp.com/api/v1/volunteers/:id To update volunteer details : PUT - http://outcharityiosapp.herokuapp.com/api/v1/volunteers/:id To delete volunteer details : DELETE - http://outcharityiosapp.herokuapp.com/api/v1/volunteers/:id
-
Organizer (:id = email id)
To return organizer : GET - http://outcharityiosapp.herokuapp.com/api/v1/organizers/:id To return update Organizer : PUT - http://outcharityiosapp.herokuapp.com/api/v1/organizers/:id To delete Organizer : DELETE - http://outcharityiosapp.herokuapp.com/api/v1/organizers/:id
{
basic: {
email: '[email protected]',
password: '12345'
},
role: 'volunteer'
}
{
email: String,
role: {
type: String,
default: 'volunteer'
},
name: {
firstname: String,
lastname: String
},
ageReq: Boolean,
city: String,
bio: String,
causes: {
type: [String]
},
skills: {
type: [String]
},
events: {
type: [String]
},
avatar: String
}
{
email: String,
role: {
type: String,
default: 'organizer'
},
orgName: String,
firstname: String,
lastname: String,
mission: String,
address: String,
city: String,
phone: String,
type: String,
website: String,
createdSince: {
type: Date,
default: Date.now
},
events: [String]
}
{
eventId: String,
organizerId: String,
volunteerId: String,
title: String,
date: Date,
time: Date,
location: String,
description: String,
volunteerJobs: [{
_id: false,
title: String,
skills: [String]
}],
messages: [{
_id: false,
username: String,
body: String,
date: Date
}],
createdSince: {
type: Date,
default: Date.now
},
closed: Boolean
}