xPosure is a social picture discovery and organisation application. It is built using express, Node.js, mongoose, and bootstrap.
HOME
As a user, I want to see a nice landing page with info about the app and login , so that I can understand what it is about and how to join.
SIGNUP
As a user, I want to sign up easily, so that I can start managing and sharing my media.
MY MEDIA
As a user, I want to see all all my imported media in one site , so that I can have an overview and deciide what to do with it.
MEDIA EDIT
As user, I want to be able to change the data and settings of my media, so that I can optimise, organise, and share it.
PHOTO VIEW
As a user, I want to have a full-scale picture view, so I can see all the details
FEED
As a user, I want have a feed of pictures from other users, so I can expore what aothers have shared.
MAP EXPLORE
As a user, I want to see a map with tagges pictures, so I can see what pictures were taken around me or around a location I'm interested in.
const userSchema = new Schema({
firstName: String,
lastName: String,
email: String,
username: String,
passwordHash: String,
profile: {
bio: String,
image: String,
location: String
},
media: [],
followers: [],
following: [],
likes: [],
saved: [],
activityLog: [],
timestamp: {
created_at: Date(),
}
});
const mediaSchema = new Schema({
url: {
thumbnail: String,
full_size: String
},
meta: {
media_type: String,
timestamp: Date(),
geolocation: [Number],
camera: String,
description: String
},
creatorId: String,
visibility: boolean,
likes: [],
saves: [],
filtertags: []
});
Route | HTTP Verb | Description |
---|---|---|
/ | GET | render home screen w/ |
/ | POST | Log-in |
Route | HTTP Verb | Description |
---|---|---|
/signup | GET | render signup form |
/signup | POST | Create new user |
Route | HTTP Verb | Description |
---|---|---|
/explore | GET | render explore view, get all media |
/explore/:filter | POST | Send query for filtered feed |
/explore/:filter | GET | Render filtered feed |
/explore/:media_id | POST | Send query for media_id |
/explore/:media_id | GET | Render image in view |
Route | HTTP Verb | Description |
---|---|---|
/mymedia | GET | render myMedia view, get all media |
/mymedia/:filter | POST | Send query for filtered media |
/mymedia/:filter | GET | Render filtered media |
/mymedia/manage/:media_id | POST | Send query for media_id |
/mymedia/manage/:media_id | GET | Render image in view |
/mymedia/manage/:media_id | PATCH/PUT | Change media in DB |
/mymedia/manage/:media_id | DELETE | Delete media in DB |
[Trello kanban board] (https://trello.com/invite/b/gNbmMcI2/6bc5b7c2b98e50db7c421eee55367784/xposure)
[Github code repository] (https://github.com/BenjaminWoerner/xPosure)
N/A