/menufic

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

Primary LanguageTypeScriptMIT LicenseMIT


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  ·