Skip to content

Create digital menus effortlessly with this restaurant menu generator. Built on the T3 stack (Next.js pages router, Prisma, PlanetScale, TRCP, NextAuth) for seamless functionality

License

kaje94/menufic

Repository files navigation


Menufic

A digital menu generator for restaurants, built using T3 stack

IntroductionPrerequisiteHow To UseContributingLicense

Menufic-Preview-Image


Introduction

Menufic is a digital menu generator for restaurants that makes it simple and easy for anyone to create and share their restaurant menus. Menufic is built using Next.js, NextAuth.js, Prisma, tRPC, Neon & Imagekit. Following are some of the features that Menufic provides.

  • Simple & intuitive UI to create & manage restaurant menus
  • Generate menus that are optimized for search engines and social media crawlers
  • Support for both light and dark themes
  • Attach multiple banner images to menus
  • Share generated menu using URL or QR code
  • Responsive UI design that works well on all devices

Prerequisite

General:

Barebone Installation:

Docker Installation:

  • Docker CE
  • Docker Compose

How To Use

Docker

# copy env file and adjust to your needs
cp .env.example .env

# spawn the docker stack
docker compose up

The web application will be accessible on http://127.0.0.1:3000.

If you do not trust our externally hosted Docker Images, feel free to build the Docker Image locally yourself:

docker build -t menufic .

Barebone

From your command line:

# Clone this repository
$ git clone https://github.com/kaje94/menufic

# Go into the repository
$ cd menufic

# Install dependencies
$ npm install

You need to create a .env file at the root folder with the keys defined in .env.example before running any of the following commands.

Scripts related to the Next.js app:

# To migrate the Database (Make sure that you have a valid DATABASE_URL in your .env file). 
# This is needed if you are planning to run Menufic locally
$ npx prisma db push

# Start the app in development mode with hot-code reloading by running:
$ npm run dev

# Create an optimized production build of the application by running
$ npm run build

# After building the app start it in production mode by running:
$ npm start

Scripts related to linting and formatting:

# Check if there are any linting issues by running:
$ npm run lint

# Check & fix fixable linting issues by running:
$ npm run lint:fix

# Format other files types such as .json, .md & .css by running:
$ npm run format-rest

Scripts related to playwright tests:

Before running playwright tests, make sure that you have added TEST_MENUFIC_USER_LOGIN_KEY and TEST_MENUFIC_BASE_URL to your .env file

# Start dev server(If its not already running) & run all e2e tests
$ npm run test:e2e

Contributing

Please refer the Contributing.md in order to contribute towards this project

License

License: MIT

a.kajendran@gmail.com  ·  GitHub @kaje94  · 

About

Create digital menus effortlessly with this restaurant menu generator. Built on the T3 stack (Next.js pages router, Prisma, PlanetScale, TRCP, NextAuth) for seamless functionality

Topics

Resources

License

Stars

Watchers

Forks

Languages