Skip to content

Instantly share code, notes, and snippets.

@Ntropish
Last active September 8, 2015 21:29
Show Gist options
  • Select an option

  • Save Ntropish/1dbad3cd66c9d0ff228c to your computer and use it in GitHub Desktop.

Select an option

Save Ntropish/1dbad3cd66c9d0ff228c to your computer and use it in GitHub Desktop.
REST API An back-end written in Express
Approximate Models to be made in MongoDB
User
username
password (hashed with bcrypt)
email
friend list (array of other user IDs)
album list (array of albums)
notifications (object of notifications)
friend requests
posts on profile/groups
details (object containing details about the user)
name
image
...
settings (object containing privacy and other settings)
keep profile private
...
Group
name
owner (user ID)
members (array of user IDs)
details (object containing details about the group)
settings (object containing privacy and other settings)
keep group private
...
Post
author (user ID)
text
type (User, Post, Album, Image)
location (User, Post, Album, or Image ID)
Image
caption
data (image data)
Album
name
description
images (array of image IDs)
API Routes
User (authorization conditionally required)
Username
GET
Gets user data and paginated posts
Also gets friend list, settings, albums, and group list if authorized
PUT (auth required)
Modify settings or account details
DELETE (auth required)
Delete user
Authenticate
POST
Login user with JWT
PUT
Logout user
Register
POST
Register user
Album
Album ID
GET
Get album info and paginated images
PUT
Modify album
POST
Add image to album
DELETE
Remove album
POST
Make new album on the authenticated user
Image
Image ID
GET
Get image and caption
PUT
Modify image if authorized
DELET
Remove image if authorized
POST
Add a new image on the authenticated user in the default album or one specified
Group (authorization conditionally required)
group name
GET
Gets group data and recent posts, or paginated posts if authorized
DELETE
Delete group
PUT
Update group settings or details
POST
Create group
Post (authorization conditionally required)
GET
Get post author, post text, and post location if authorized or post is public
POST
Create post
PUT
Edit post
DELETE
Remove post
Front End
App to be made in Angular based on given design
Will have friend/group management for viewing/searching one's groups/friends,
links to view their pages, or removing them
Will allow searching for groups and users
Will allow visiting of groups or users and conditionally display content
such as the user's friends, group members, user's posts, group posts,
users name, group name, etc. based on authorization and will give options
to add user as friend or request to join group
User and Group pages will also allow viewing of image albums
Viewing one's own page or group will allow changing of settings, details,
and image album management.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment