https://github.com/shashank2203malik/trek-king
A full stack web application to review and create treks with basic user authentication.
https://github.com/shashank2203malik/trek-king
bootstrap css ejs expressjs javascript maptiler mongodb nodejs passportjs
Last synced: 5 months ago
JSON representation
A full stack web application to review and create treks with basic user authentication.
- Host: GitHub
- URL: https://github.com/shashank2203malik/trek-king
- Owner: shashank2203malik
- Created: 2024-08-02T10:45:19.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-18T11:41:27.000Z (almost 2 years ago)
- Last Synced: 2025-02-02T01:32:06.009Z (over 1 year ago)
- Topics: bootstrap, css, ejs, expressjs, javascript, maptiler, mongodb, nodejs, passportjs
- Language: EJS
- Homepage: https://trek-king.onrender.com
- Size: 130 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Trek-King
My first full-stack web application. Essentially, it is a review website for Treks in India. The core features included are login and sign-up for user authentication, Maptiler Maps API for implementing a cluster map to make it more user-friendly and intuitive , and (CRUD) functionality for creating a new trek and/or reviewing treks made by other authors. The basic foundation of this project was built from the web course 'The Web Developer Bootcamp' by Colt Steele.
## Features
- Users can sign-up/login to use various features like creating, editing, and deleting treks
- Users can leave rating and reviews treks, and edit/delete their reviews
- Authors can only delete treks and reviews created by them.
- Users can use cluster map to pinpoint and view a particular trek
## Demo
##### Landing/Home page and using cluster map to pinpoint a particular trek and view detailed data of that trek

##### User authentication via login page to create or comment on a trek

##### Creating a new trek

##### Editing an already created trek

##### Ability to add new images and delete existing uploaded images

##### Unable to delete a trek if the user is not the author (even if logged in)

##### Ability to leave a review with rating and edit it

## Learnings
- First full-stack application to help me understand the integration of front-end with back-end
- Introduction to Express.js in Node.js runtime environment
- Introduction to MongoDB and the basic CRUD functionality. Basic introduction of pre and post hooks, and mongoose middleware
- Introduction to EJS to render dynamic content with HTML and javascript
- A very basic understanding of Error handling(Express error handling and handling async errors)
- Introduction to session, cookies, and flash
- Introduction to authentication and authorization using PassportJS
- Gaining exposure to Cloudinary, Maptiler maps API, and Mongo Atlas
- Optimizing app by learning about various security issues and implementing Helmet to mitigate some of those issues
- Hosting app on Render to learn about deploying and environment variables during development and production