A digital menu generator for restaurants, built usingT3 stack
Introduction• Prerequisite• How To Use• Contributing• License
Menuficis a digital menu generator for restaurants that makes it simple and easy for anyone to create and share their restaurant menus. Menufic is built usingNext.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
General:
- Imagekit accountfor managing all the uploaded images.
- Google/GitHubfor authenticating users
Barebone Installation:
- Git
- Node.js 16+
- NPM 7+
- PostgreSQLfor persisting data.
Docker Installation:
- Docker CE
- Docker Compose
# 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 onhttp://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.
From your command line:
#Clone this repository
$ git clone https://github.com/kaje94/menufic
#Go into the repository
$cdmenufic
#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
Please refer theContributing.mdin order to contribute towards this project
[email protected]· GitHub@kaje94·