TravelSnap is a Node.js and Express-powered web platform for travel enthusiasts to share, explore, and discuss stunning travel photographs, leveraging MongoDB for data storage and Google Cloud Storage for photo management.
- Backend: Node.js with Express
- Database: MongoDB
- File Storage: Google Cloud Storage (for photo storage)
- Frontend: (To be decided, e.g., React)
Follow these steps to get your development environment set up:
- Clone the repo:
git clone [repository-url]
- Navigate to the project directory:
cd TravelSnap
- Install dependencies:
npm install
- Set up your environment variables for database connection and Google Cloud Storage.
- Start the server:
npm start
Handles user-related operations.
- GET
/users
: Retrieve all users. - POST
/users
: Create a new user. - PUT
/users/:userId
: Update a user's information. - DELETE
/users/:userId
: Delete a user.
Manages photo uploads and information.
- GET
/photos
: Retrieve all photos. - GET
/photos/:photoId
: Retrieve a specific photo. - POST
/photos
: Upload a new photo. - PUT
/photos/:photoId
: Update photo details. - DELETE
/photos/:photoId
: Delete a photo.
Facilitates commenting on photos.
- GET
/photos/:photoId/comments
: Retrieve comments for a photo. - POST
/photos/:photoId/comments
: Post a comment on a photo. - DELETE
/photos/:photoId/comments/:commentId
: Delete a comment.
Handles user authentication.
- POST
/auth/login
: User login. - GET
/auth/logout
: User logout.
- Subfolder:
TravelSnap
in5-NodeJS-Express-MongoDB
. - Git Repository: Initialized with
.gitignore
fornode_modules
. - Dependencies: Express, body-parser, and morgan.
- Routes: Implemented in the
routes
subfolder.
- Photo Metadata: Stored in MongoDB.
- Photo Files: Stored in Google Cloud Storage.
- Joshua Peterson - Initial work - joshuadanpeterson
This project is licensed under the MIT License - see the LICENSE file for details