v 0.5.0
Irvine Downing | Stephen Anderson | Jaren Escueta | David Porter
A RESTful API that provides a social media platform for cosplayers, their fans, and cosplay vendors. A new user can sign up for an account and create a profile, make or update posts associated with their profile, and upload or delete their own photos. Users can also retrieve the profiles, posts, and photos of other users. Express routes the client requests and responses to and from the server at any given endpoint. Models for user, profile, post, and photo are made through mongoose and stored in respective MongoDB collections. Uploaded photos are stored using AWS S3 service.
- username
- String
- input, required, unique
- email
- String
- input, required, unique
- password
- String
- input, required
- findHash
- self-generated, unique
- name
- String
- input, required
- bio
- String
- input, optional
- location
- String
- input, required
- dateJoined
- Date
- self-generated, required, default=Date.now
- interests
- [Array]
- input, optional
- costumesWorn
- [Array]
- input, required
- eventsAttended
- [Array]
- input, optional
- eventsCreated
- [Array]
- input, optional
- cosplayer
- Boolean
- input, required
- vendor
- Boolean
- input, required
- fan
- Boolean
- input, required
- profilePic
- added by Photo model, optional
- posts
- [Array]
- populated by Post model, optional
- userID
- added by User model, required
- description
- String
- input, required
- timePosted
- Date
- self-generated, required, default=Date.now
- likes
- Number
- self-generated, required, default=0
- photoID
- added by Photo model, optional
- profileID
- added by Profile model, required
- userID
- added by User model, required
- name
- String
- input, required
- description
- String
- input, optional
- location
- String
- input, optional
- dateUploaded
- Date
- self-generated, required, default=Date.now
- objectKey
- String
- added by AWS, required, unique
- imageURI
- String
- added by AWS, required, unique
- userID
- added by User model, required
- postID
- added by Post model, optional
- profileID
- added by Profile model, optional
POST /api/signup- Create a user
200 OK400 Bad Request404 Not Found409 Conflict
GET /api/login- Requires basic auth via username:password
- Provides JSON web token for requests requiring authorization
200 OK401 Unauthorized
POST /api/profiles- Requires authorization
GET /api/profiles/:id- profileID parameter
GET /api/profiles/me/myprofile- Requires authorization
GET /api/profiles- Requires authorization
POST /api/posts- Requires authorization
GET /api/posts/:id- postID parameter
GET /api/posts/me/myposts- Requires authorization
GET /api/posts- Requires authorization
PUT /api/posts/me/myposts/:id- postID parameter
- Requires authorization
POST /api/profiles/:id/photos- profileID parameter
- Requires authorization
POST /api/posts/:id/photos- postID parameter
- Requires authorization
DELETE /api/photos/:id- photoID parameter
- Requires authorization
- basic-auth-middleware
- implements the user login feature
- bearer-auth-middleware
- implements the token authentication for POST, GET, and DELETE routes
- jsonParser
- parses JSON
- error middleware
- handles errors
The Olayers development team may be reached via the Issues tab for this repo on GitHub.