https://github.com/nsinghal12/project-wayfarer
TripAdvisor style application to post vacation trip memories.
https://github.com/nsinghal12/project-wayfarer
boostrap4 expressjs mongodb mongoose nodejs reactjs
Last synced: 3 months ago
JSON representation
TripAdvisor style application to post vacation trip memories.
- Host: GitHub
- URL: https://github.com/nsinghal12/project-wayfarer
- Owner: nsinghal12
- License: apache-2.0
- Created: 2018-09-09T18:27:54.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2019-01-07T03:12:30.000Z (over 7 years ago)
- Last Synced: 2025-06-04T20:24:51.660Z (about 1 year ago)
- Topics: boostrap4, expressjs, mongodb, mongoose, nodejs, reactjs
- Language: JavaScript
- Homepage:
- Size: 13.7 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Project Wayfarer
Wayfarer project is a TripAdvisor style application for people to post their trip memories for vacations they enjoyed. The online application is deployed at: https://wayfarer-web.herokuapp.com/
## Technologies Used
* HTML5, CSS, JavaScript
* ReactJS
* Bootstrap 4.0
* NodeJS
* MongoDB
* MongooseJS
* ExpressJS
## Modules
The project folders include:
* controllers: expressJS code for API
* models: mongoose schema
* public: css, js and images
* views: the index.html file that user gets in browser
* documentation: Wireframes, ERD-Diagram
The project starts using `server.js` file that runs the
server at port `http://localhost:3000`.
## Existing Features
* A nice landing page with carousel
* Authentication
* Create new posts
* View existing posts
* View all posts made by a user
* Delete their own post - post confirmation
* Edit their own post
## References
* Initial site template used from Bootstrap cover page
example: http://getbootstrap.com/docs/4.1/examples/cover/
## Database
The database used is MongoDB. Data is stored in the following collections:
* user: contains details on each user
* post: contains details on each post
* cities: contains data for each city
There is no referencing on Mongoose layer by default. In fact we use the
support of MongoDB queries to make sure that we fetch the right data that
we need every time.
Server side validations for fields have been added to make sure that incorrect
requests from clients are not honored.
## Challenges/Learnings/Wins
* Modal Windows - using BS modal windows was a challenge as the BS javascript
conflicted with our React code. Thus had to create one.
* Local Storage - using local storage to persist user session after sign-in
and reloading that data once the app was loaded
* Carousel - making sure images displayed nicely in full-width and preventing
memory leak
## Planned Features
* UI for CRUD operations of cities
* Store passwords using BCrypt
## License
Copyright (C) 2018, Niti Singhal.