Giter Site home page Giter Site logo

kaje94 / menufic Goto Github PK

View Code? Open in Web Editor NEW
64.0 4.0 22.0 7.69 MB

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

Home Page: https://menufic.com

License: MIT License

JavaScript 0.96% TypeScript 98.83% Dockerfile 0.21%
create-t3-app imagekit mantine nextauth nextjs nodejs prisma react trpc typescript

menufic's Introduction


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

[email protected]  ·  GitHub @kaje94  · 

menufic's People

Contributors

kaje94 avatar l4rm4nd avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

menufic's Issues

Installation not working

I'm getting the following errors running nmp install are the prisma dependencies deprecated?:
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@playwright/[email protected]',
npm WARN EBADENGINE required: { node: '>=14' },
npm WARN EBADENGINE current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@prisma/[email protected]',
npm WARN EBADENGINE required: { node: '>=14.17' },
npm WARN EBADENGINE current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@rollup/[email protected]',
npm WARN EBADENGINE required: { node: '>=14.0.0' },
npm WARN EBADENGINE current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@rollup/[email protected]',
npm WARN EBADENGINE required: { node: '>=14.0.0' },
npm WARN EBADENGINE current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '[email protected]',
npm WARN EBADENGINE required: { node: '^14.18.0 || >=16.0.0' },
npm WARN EBADENGINE current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '[email protected]',
npm WARN EBADENGINE required: { node: '^14 || ^16 || >=18' },
npm WARN EBADENGINE current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '[email protected]',
npm WARN EBADENGINE required: { node: '>=14.6.0' },
npm WARN EBADENGINE current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '[email protected]',
npm WARN EBADENGINE required: { node: '>=14' },
npm WARN EBADENGINE current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '[email protected]',
npm WARN EBADENGINE required: { node: '>=14.17' },
npm WARN EBADENGINE current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '[email protected]',
npm WARN EBADENGINE required: { node: '>=14.15.0' },
npm WARN EBADENGINE current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '[email protected]',
npm WARN EBADENGINE required: { node: '^14.18.0 || >=16.0.0' },
npm WARN EBADENGINE current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }
npm WARN deprecated @floating-ui/[email protected]: Package renamed to @floating-ui/react
npm ERR! code 1
npm ERR! path /root/menufic/node_modules/prisma
npm ERR! command failed
npm ERR! command sh -c node scripts/preinstall-entry.js
npm ERR! ┌─┐
npm ERR! │ …│
npm ERR! └┘

npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2023-08-03T15_28_11_957Z-debug-0.log

[Improvement] Clone or copy restaurant and menu items into a new restaurant

Feature

What is the current behavior?

If we have restaurants in multiple locations with similar restaurant menus, we are unable to duplicate the menus from an existing restaurant to a new location

What is the expected behavior?

The user has to repeatedly create multiple restaurants and menus

What is the motivation / use case for changing the behavior?

This will help restaurant chains with restaurants in multiple location to manage their restaurant menus with less effort

Proposing new features

Hello 👋

I really liked your project. Amazing. 🤩
I have a couple of features and hope adding the feature in your TODO list!

  • Adding and showing social media accounts.
  • Working/Opening time.
  • Marketing offers.
  • QR Code styling.

Best regards ❤️

How to install

Awesome repo! I'd love to contribute.

I'm trying to run locally. Are there instructions for how to do so beyond the readme? I think I may be missing a step or two.

I've configured the .env file, and I'm getting the following error upon redirection from GH login:

❌ tRPC failed on restaurant.getAll: UNAUTHORIZED
[sentry] If Next.js logs a warning "API resolved without sending a response", it's a false positive, which may happen when you use `withSentry` manually to wrap your routes.
            To suppress this warning, set `SENTRY_IGNORE_API_RESOLUTION_ERROR` to 1 in your env.
            To suppress the nextjs warning, use the `externalResolver` API route option (see https://nextjs.org/docs/api-routes/api-middlewares#custom-config for details).

Upon investigation breakpoints, I can see that the ctx.session is not being set in serversideprops, but it's not clear why.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.