Skip to content

Javiink/fastpoke-backend

Repository files navigation

FastPoke Logo

🍚 FastPoke 🍚

A food ordering application designed for poke restaurant kiosks

View Demo · Report Bug · Request Feature

GitHub Actions Workflow Status GitHub package.json version GitHub License

Nest API Angular Frontend MongoDB Database
Docker Compose Containerization GitHub Actions Continuous Integration

❔ What's this about?

FastPoke is a solution for poke restaurants that make ordering faster and more intuitive.

It has been designed to use it in ordering kiosks, like the ones you see in fast food restaurant chains. Customers make their orders in the touchscreen, having all the resturant menu options at hand.

This is a practice project I've made to dive deep in Angular and Nest. It is extensible and there are many upgrades I have planned for it.

🚀 Usage

🐳 Using docker-compose

services:
  fastpoke-api:
    container_name: fastpoke-api
    image: ghcr.io/javiink/fastpoke-backend:latest
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - ${APP_PORT:-80}:80
    networks:
      - fastpoke-net
    depends_on:
      - fastpoke-db
    restart: unless-stopped

  fastpoke-db:
    container_name: fastpoke-db
    image: mongo
    command: mongod --quiet --logpath /dev/null
    volumes:
      - fastpoke-db:/data/db
      - ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
      - ./mongo-seed.sh:/docker-entrypoint-initdb.d/mongo-seed.sh
      - ./src/common/seeds:/seeds
    environment:
      - MONGO_INITDB_USERNAME=${MONGODB_USERNAME:-fastpoke}
      - MONGO_INITDB_PASSWORD=${MONGODB_PASSWORD:-Ch4nG3m3pL34se}
      - MONGO_INITDB_DATABASE=${MONGODB_DATABASE:-fastpoke}
    restart: unless-stopped
    healthcheck:
      test:
        [
          "CMD",
          "mongosh",
          "--quiet",
          "127.0.0.1/${MONGODB_DATABASE:-fastpoke}",
          "--eval",
          "'quit(db.runCommand({ ping: 1 }).ok ? 0 : 2)'",
        ]
      interval: 10s
      timeout: 10s
      retries: 5
      start_period: 10s
    networks:
      - fastpoke-net

networks:
  fastpoke-net:
    driver: bridge

volumes:
  fastpoke-db:

ℹ️ Application port defaults to 80. You can change it in the docker-compose.yml file or creating a .env file with APP_PORT key and your preferred value, eg APP_PORT=3001

✌️ Contributing

FastPoke is built by the API (this repo) and the frontend. Contributions to either (or both) of the repositories are always welcome!

If you want to contribute to the API, follow the steps below. When you are finished, please make a Pull Request. You can copy the .env.example file to .env and fill it with your values to match your environment.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/NewFeature)
  3. Commit your Changes (git commit -m 'Add some NewFeature')
  4. Push to the Branch (git push origin feature/NewFeature)
  5. Open a Pull Request

You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! 🌟💖

For instructions for contributing to the frontend application, please head to fastpoke-frontend README section

⚙️ Roadmap

  • Multi-language Support (Frontend has partial support)
  • Build POS application
  • Build order monitor for kitchen

📩 Contact

You can contact me via these socials:

Contact linkedIn Contact Telegram

⚖️ License

FastPoke is GNU licensed.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages