- PART I: Project Overview
- PART II: Client Side
- PART III: Sever Side
- PART IV: Project Road Map
- APPENDIX
A photo sharing platform for photographers to share travel photos. Footprint allows users to upload art works that can be edited with descriptions and organized by geographical tagging. Posts can be shared and commented on publicly. Users can browse other users' content by tags and locations and view trending content.
When people are looking for travel photos and experiences online, there are masterly two places to go, social platforms or travel sites. But neither of them are easy to get an ideal result for a travel avdice. Social platforms nowadays are packed with too much information, users are easily getting distracted and lost in the social network, and information from travel sites are masterly uploaded by organizations and mostly text based. By introducing a light weight travel focusd photo sharing platform, it is providing an easier experience for users to explore nice photos and travel advices of their dream vacation.
-
Photographers: posting and sharing art works of travel locations
The application is providing an easy process for photographers to upload their art works and their work will get more apperence if higher popularity. And the design of the site will help them best display their piece of work.
-
When searching for travel advices, users are more likely looking for a specific destination.
The application is prividing this feature by adding geolocation tag into the post that helps users to search their target more seamlessly. For those users who are just browsing the site, the application is also providing a recommender algorithm using content filtering and collebrative filtering based on trend and browsing history.
- Viewing post
- Searching post by location
- Searching user profile
- Signing up
- Signing in
- Posting photo
- Commenting post
- Viewing comments
- Getting notification when someone commented on user's post
- HTML
- CSS (SCSS)
- Javacript
- React
- Node.js
- Express
- MongoDB
- Mongoose
- axios
- faker
- React Router
- js-cookie
- react-cool-onclickoutside
- react-dropzone
- dotenv
- cors
- hash.js
- nodemon
- uuid
- multer
- use-places-autocomplete
- Material-ui icon
- Netlify
- Heroku
- pusher
- Google Map Api
Method | EndPoints | Response Format |
---|---|---|
GET | /post | { "previousId": "a585d92e-a3d4-4119-a2d4-e9c4aa4cec82", "curImgObj": { "comments": [], "_id": "609abd42b144db0306be1273", "user": { "userId": "1164a2d5-e1d3-44ec-bd8c-3ef81d9b5187", "username": "Daron Donnelly", "avatar": "https://cdn.fakercloud.com/avatars/mslarkina_128.jpg" }, "location": "Forest Lake, MN, USA", "description": "Et qui aut in sint qui cum. Numquam soluta iure. Ut fugiat nisi fugit vel. Enim sint necessitatibus.", "likes": 0, "imgUrl": "uploads/1620753730056-.jpg", "imgId": "a10aaf64-e413-49bd-b9e3-fef5ecd8a66e", "timestemp": 1620753730074, "__v": 0 }, "nextId": "a0f7fa70-7638-40ba-8247-fb163002ee4a" } |
POST | /post | { "previousId": "a585d92e-a3d4-4119-a2d4-e9c4aa4cec82", "curImgObj": { "comments": [], "_id": "609abd42b144db0306be1273", "user": { "userId": "1164a2d5-e1d3-44ec-bd8c-3ef81d9b5187", "username": "Daron Donnelly", "avatar": "https://cdn.fakercloud.com/avatars/mslarkina_128.jpg" }, "location": "Forest Lake, MN, USA", "description": "Et qui aut in sint qui cum. Numquam soluta iure. Ut fugiat nisi fugit vel. Enim sint necessitatibus.", "likes": 0, "imgUrl": "uploads/1620753730056-.jpg", "imgId": "a10aaf64-e413-49bd-b9e3-fef5ecd8a66e", "timestemp": 1620753730074, "__v": 0 }, "nextId": "a0f7fa70-7638-40ba-8247-fb163002ee4a" } |
GET | /post/:id | { "previousId": "a585d92e-a3d4-4119-a2d4-e9c4aa4cec82", "curImgObj": { "comments": [], "_id": "609abd42b144db0306be1273", "user": { "userId": "1164a2d5-e1d3-44ec-bd8c-3ef81d9b5187", "username": "Daron Donnelly", "avatar": "https://cdn.fakercloud.com/avatars/mslarkina_128.jpg" }, "location": "Forest Lake, MN, USA", "description": "Et qui aut in sint qui cum. Numquam soluta iure. Ut fugiat nisi fugit vel. Enim sint necessitatibus.", "likes": 0, "imgUrl": "uploads/1620753730056-.jpg", "imgId": "a10aaf64-e413-49bd-b9e3-fef5ecd8a66e", "timestemp": 1620753730074, "__v": 0 }, "nextId": "a0f7fa70-7638-40ba-8247-fb163002ee4a" } |
DELETE | /post/:id | { "comments": [], "_id": "609abd42b144db0306be1273", "user": { "userId": "1164a2d5-e1d3-44ec-bd8c-3ef81d9b5187", "username": "Daron Donnelly", "avatar": "https://cdn.fakercloud.com/avatars/mslarkina_128.jpg" }, "location": "Forest Lake, MN, USA", "description": "Et qui aut in sint qui cum. Numquam soluta iure. Ut fugiat nisi fugit vel. Enim sint necessitatibus.", "likes": 0, "imgUrl": "uploads/1620753730056-.jpg", "imgId": "a10aaf64-e413-49bd-b9e3-fef5ecd8a66e", "timestemp": 1620753730074, "__v": 0 } |
POST | /post/:id/comment | { "comments": [ { "commentId": "5edf3dea-06f2-4300-ad6d-562d80e63fbc", "user": { "userId": "50690cb6-10ee-4f0c-8712-5414517fd741", "username": "Isai Lesch V", "avatar": "https://cdn.fakercloud.com/avatars/maximseshuk_128.jpg" }, "comment": "Et qui aut in sint qui cum. Numquam soluta iure. Ut fugiat nisi fugit vel. Enim sint necessitatibus.", "timestemp": 1620729405634 }, { "commentId": "bfeaf1ac-afa8-4ed6-903b-a6fc0c702791", "user": { "userId": "3e73a6fa-66c2-421b-86f8-75c1696fd967", "username": "Cheyenne Wisoky", "avatar": "https://cdn.fakercloud.com/avatars/mcflydesign_128.jpg" }, "comment": "Et qui aut in sint qui cum. Numquam soluta iure. Ut fugiat nisi fugit vel. Enim sint necessitatibus.", "timestemp": 1620729870773 }, { "commentId": "821b088d-74c1-41f8-9b8a-462df4b5b947", "user": { "userId": "1164a2d5-e1d3-44ec-bd8c-3ef81d9b5187", "username": "Daron Donnelly", "avatar": "https://cdn.fakercloud.com/avatars/mslarkina_128.jpg" }, "comment": "Nemo sit veritatis doloribus est quam placeat sit voluptates. Voluptatem quaerat autem. Non qui quasi eum eaque voluptates quis in. Ut esse et hic ipsam. Optio enim esse. Et nam vel voluptates est est eveniet vero alias nihil.\n", "timestemp": 1620753507855 } ], "_id": "609a58a86862df02eb87e030", "user": { "userId": "5094e116-aed2-40d4-8328-c0990a03c674", "username": "Jaylon Gusikowski", "avatar": "https://cdn.fakercloud.com/avatars/robturlinckx_128.jpg" }, "location": "Great Falls, MT, USA", "description": "Quia natus rerum illum sit. Non maiores qui corrupti voluptas consequatur. Voluptatem saepe animi quibusdam. Accusantium reiciendis soluta autem ut voluptatum. Facere inventore corrupti voluptatem inventore quidem optio. Ea voluptatem suscipit odio ad ducimus officiis sunt. Quidem aliquid aut velit sed assumenda. Doloribus nihil enim. Aut commodi qui atque perferendis similique natus corporis occaecati. Dolorem illum architecto.", "likes": 0, "imgUrl": "uploads/1620727976434-.jpg", "imgId": "a0f7fa70-7638-40ba-8247-fb163002ee4a", "timestemp": 1620727976453, "__v": 0 } |
POST | /post/:id/like | |
GET | /post/user | { "previousId": "a585d92e-a3d4-4119-a2d4-e9c4aa4cec82", "curImgObj": { "comments": [], "_id": "609abd42b144db0306be1273", "user": { "userId": "1164a2d5-e1d3-44ec-bd8c-3ef81d9b5187", "username": "Daron Donnelly", "avatar": "https://cdn.fakercloud.com/avatars/mslarkina_128.jpg" }, "location": "Forest Lake, MN, USA", "description": "Et qui aut in sint qui cum. Numquam soluta iure. Ut fugiat nisi fugit vel. Enim sint necessitatibus.", "likes": 0, "imgUrl": "uploads/1620753730056-.jpg", "imgId": "a10aaf64-e413-49bd-b9e3-fef5ecd8a66e", "timestemp": 1620753730074, "__v": 0 }, "nextId": "a0f7fa70-7638-40ba-8247-fb163002ee4a" } |
GET | /post/location | { "previousId": "a585d92e-a3d4-4119-a2d4-e9c4aa4cec82", "curImgObj": { "comments": [], "_id": "609abd42b144db0306be1273", "user": { "userId": "1164a2d5-e1d3-44ec-bd8c-3ef81d9b5187", "username": "Daron Donnelly", "avatar": "https://cdn.fakercloud.com/avatars/mslarkina_128.jpg" }, "location": "Forest Lake, MN, USA", "description": "Et qui aut in sint qui cum. Numquam soluta iure. Ut fugiat nisi fugit vel. Enim sint necessitatibus.", "likes": 0, "imgUrl": "uploads/1620753730056-.jpg", "imgId": "a10aaf64-e413-49bd-b9e3-fef5ecd8a66e", "timestemp": 1620753730074, "__v": 0 }, "nextId": "a0f7fa70-7638-40ba-8247-fb163002ee4a" } |
GET | /user/:id | |
POST | /user/signup | { "userId": "11c1d1e6-c475-4019-9cbe-0dfaaacff92a", "username": "Dr. Lonny Legros", "email": "[email protected]", "bio": "Et qui aut in sint qui cum. Numquam soluta iure. Ut fugiat nisi fugit vel. Enim sint necessitatibus.", "avatar": "https://cdn.fakercloud.com/avatars/nickfratter_128.jpg" } |
POST | /user/signin | { "userId": "1164a2d5-e1d3-44ec-bd8c-3ef81d9b5187", "username": "Daron Donnelly", "email": "[email protected]", "bio": "Nemo sit veritatis doloribus est quam placeat sit voluptates. Voluptatem quaerat autem. Non qui quasi eum eaque voluptates quis in. Ut esse et hic ipsam. Optio enim esse. Et nam vel voluptates est est eveniet vero alias nihil.\n", "avatar": "https://cdn.fakercloud.com/avatars/mslarkina_128.jpg" } |
POST | /search | { "location": { "Banff, AB, Canada": 1, "Scotland, UK": 1, }, "user": { "Jaylon Gusikowski": "5094e116-aed2-40d4-8328-c0990a03c674", "Alessia Botsford": "2ef0fd37-8411-4ed5-ac29-0f1c5f19c829", "Isai Lesch V": "50690cb6-10ee-4f0c-8712-5414517fd741", "Daron Donnelly": "1164a2d5-e1d3-44ec-bd8c-3ef81d9b5187", "Gavin Jacobson": "ba94b1b7-881a-4387-a92f-ce9c5898c958" } } |
External API | Documentation |
---|---|
google maps | https://developers.google.com/maps/documentation |
Start date | Due Date | |
---|---|---|
Page, database and system design | April 28 | April 29 |
Database and data structure setup | April 30 | May 30 |
Backend functionality implemented | May 1 | May 5 |
Frntend design implemented | May 6 | May 9 |
Advanced visual feature and animation implemented | May 9 | May 9 |
testing | May 10 | May 10 |
Demo day | May 11 | MAy 11 |
Packages | Version |
---|---|
cors | 2.8.5 |
dotenv | 8.2.0 |
express | 4.17.1 |
faker | 5.5.3 |
hash.js | 1.1.7 |
mongoose | 5.12.6 |
multer | 1.4.2 |
nodemon | 2.0.7 |
uuid | 8.3.2 |