A review-sharing and discovery platform for campsites built using Express, Node, MongoDb, and Mongoose.
This app is my first full-stack project. It was built to consolidate the concepts I had learned from my full-stack course. Topics include but are not limited to: This web app was made for two reasons:
- NodeJS (NPM)
- ExpressJS (Templating, RESTful APIs)
- MongoDB (Cloud Databases, Database Association)
- Mongoose (Schema Designs)
- Authentication (local auth, Passport)
- Cookies & Sessions
- Authorization
- Common Security Issues - SQL Injection, XSS, etc.
- Image upload & Storage (Cloudinary)
- Maps and Geocoding
- A index page listing all existing campsites
- A clustermap showing campsite distribution in any region
- Create new account, login, log out, register accounts
- Upload and store images in the cloud when creating new campsites
- Display all images in carousel for viewing
To run the project locally:
- Clone this project locally
- Create .env file in the root directoryand add all necessary variables locally (api_keys, secrets, etc)
- Replace all existing urls to local ones (database, port, etc)
- Run
npm install
to install dependencies - Run
node app.js
to start the server
- @mapbox/mapbox-gl-geocoder
- @mapbox/mapbox-sdk
- cloudinary
- connect-flash
- connect-mongo
- dotenv
- ejs
- ejs-mate
- express
- express-mongo-sanitize
- express-router
- express-session
- helmet
- joi
- mapbox-gl
- method-override
- mongoose
- multer
- multer-storage-cloudinary
- passport
- passport-local
- passport-local-mongoose
- sanitize-html
- Node.js, Express.js, MongoDB, JavaScript, Mapbox, Cloudinary
Features ideas
- convert to TypeScript
- improve responsiveness
- standardize image display dimension