A taco restaurant locator app that helps users find the best tacos in their area using geolocation and sentiment analysis.
Before setting up the project, ensure you have the following installed:
- Docker: Install Docker
- Docker Compose: Install Docker Compose
To set up the project using Docker, follow these steps:
-
Fork and clone the Repository:
- Fork the project repository to your GitHub account by clicking the "Fork" button at the top right of the repository page.
- Clone the forked repository to your local machine:
git clone https://github.com/your-username/taco-about-it.git cd taco-about-it
-
Create the
.env
File:- Create a .env file at the root of the project.
- This file should contain the following variables:
GOOGLE_API_KEY=your_actual_google_api_key OUTSCRAPER_API_KEY=your_actual_outscraper_api_key REDIS_HOST=redis POSTGRES_USER=your_username POSTGRES_PASSWORD=your_password POSTGRES_DB=your_database DATABASE_URL=postgresql+asyncpg://your_username:your_password@postgres:5432/your_database SECRET_KEY=your_secret ALGORITHM=HS256 ACCESS_TOKEN_EXPIRE_MINUTES=60
-
Build and Start the Docker Containers:
- Use Docker Compose to build and start the containers for the frontend, backend, and Redis services:
docker compose up --build
- This will build the necessary Docker images and start the services.
- Use Docker Compose to build and start the containers for the frontend, backend, and Redis services:
-
Access the Application:
- Once the containers are up and running, open your web browser and go to:
http://localhost:3000
- The application should be running, and you can start using it.
- Once the containers are up and running, open your web browser and go to:
This project uses GitHub Actions for Continuous Integration (CI). The CI pipeline is triggered on every push to the main
branch and on pull requests. It ensures that the code is automatically tested and built using Docker Compose.
- Builds Docker Images: Builds Docker images for the frontend, backend, and test environments.
- Uses Docker Compose: Orchestrates the services (frontend, backend, Redis) using Docker Compose to replicate a production-like environment.
Once the Docker containers are running, the application is accessible at http://localhost:3000
. You can use the app as follows:
-
Using the App:
- On the homepage, you can either share your location or enter an address to find nearby taco restaurants.
- Browse the list of restaurants and view sentiment analysis of user reviews to help you find the best tacos in your area.
-
Stopping the Application:
- To stop the Docker containers, run:
docker compose down
- This will stop and remove the containers.
- To stop the Docker containers, run:
- Geolocation-Based Search: Automatically find taco restaurants near your current location.
- Address-Based Search: Enter any address to search for nearby taco restaurants.
- Sentiment Analysis: Analyze reviews from Google Places to determine the most popular taco spots.
- Responsive Design: Optimized for both desktop and mobile devices.
- Frontend:
- React
- TypeScript
- Next.js
- Tailwind CSS
- Backend:
- Python
- FastAPI
- Redis
- SQLAlchemy
- Sentiment Analysis:
- VADER
- spaCy
- Lingua
- APIs:
- Google Places API
- Outscraper API
This project is licensed under the MIT License. See the LICENSE file for details.