Skip to content

devltt404/bull-food

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

144 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

BullFood is a user-friendly website designed for students at the University of South Florida (USF) to discover free food events on campus. Users can subscribe to a newsletter to receive daily updates about featured food events.

BullFood

Table of Contents

Tech Stack πŸ› οΈ

Features πŸš€

  • NestJS Backend: Built with a focus on OOP and adherence to SOLID principles.
  • Email Notifications: Utilize RabbitMQ for efficient email delivery to users.
  • Caching: Implement Redis to cache frequently requests.
  • CI/CD Integration: Automated deployment pipeline using Docker and GitHub Actions.

Running Locally πŸ§ͺ

Prerequisites

Steps

Step 1: Clone the Repository

Clone the BullFood repository to your local machine: bash Copy code

git clone https://github.com/devltt404/bull-food
cd bull-food

Step 2: Set Up the Client (Front-End)

  1. Navigate to the client folder:

    cd client
  2. Install Dependencies

    pnpm i
  3. Copy the .env.example to .env.

    cp .env.example .env

Step 3: Set Up the Server (Back-End)

  1. Navigate to the server folder:

    cd ../server
  2. Install client dependencies

    pnpm i
  3. Setup env variables

    Copy the .env.example to .env and update the variables.

    cp .env.example .env

    You must provide values for MAIL_USER and MAIL_PASS in .env file to setup Gmail SMTP. These should be you Gmail email address and its app password. If you use another SMTP server other than Gmail, also update the values for MAIL_HOST and MAIL_PORT.

    BC_SESSION_ID is optional. You can get its value by logging into https://bullsconnect.usf.edu/ and copying the value of CG.SessionID cookie.

Step 4: Set Up the Services with Docker Compose

We use Docker Compose to set up and run MongoDB, Redis, and RabbitMQ services locally.

  1. Start services

    docker-compose -f docker-compose.local.yml up -d
  2. Verify running Containers

    docker ps

You should see the following services listed:

  • mongodb on port 27018
  • redis on port 6379
  • rabbitmq on port 5672 and web UI on port 15672

Last Step: Run the Server

pnpm run dev

Access the website through your browser at: http://localhost:5173

About

πŸ” A user-friendly website to find free food events at USF built with React, NestJS, MongoDB and Redis.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages