hidden-gems-demo.mp4
HiddenGems is a full-stack app designed for avid explorers and enthusiasts seeking undiscovered treasures within their cities or around the globe. Users can not only discover gems recommended by others, but also contribute their own treasured spots, whether it's a delectable eatery, a captivating photography backdrop, a unique entertainment venue, or a secret shopping store.
- Interactive and immersive browsing experience using Google Maps API
- Advanced search functionality to find gems based on location and category
- Contribute by sharing your own secret discoveries to the community while adding your personal touch
- Review and rate hidden gems posted by others
- Security measures set by using JWT for authentication
This project was built with React and Tailwind CSS for the frontend, and Golang for the backend. PostgreSQL was used as the main database, Redis was used for caching, and AWS S3 for storing images.
Follow these steps to set up the project locally. Make sure to have all the above technologies installed and updated to the latest version.
- Clone this repository
- Install required dependencies in root folder and
client
folder
npm install
- Start a local PostgreSQL container using docker
docker run --name postgres -e POSTGRES_PASSWORD=hiddengems -p 5432:5432 -d postgis/postgis
- Create a public AWS S3 bucket
- Create a
.env
file in theclient
folder with the following information:
REACT_APP_GOOGLE_MAPS_API_KEY=<your-google-maps-api-key>
REACT_APP_BUCKET_NAME=<your-s3-bucket-name>
REACT_APP_REGION=<your-s3-bucket-region>
REACT_APP_ACCESS=<your-s3-bucket-access-key>
REACT_APP_SECRET=<your-s3-bucket-secret-key>
GENERATE_SOURCEMAP=false
- Make sure redis server is running, or run this command to start it
redis-server
- Add review/rating system
- Add links to major cities
- Add page for users to see their own gems
- Make app compatible for mobile view
- Polish and deploy π