Overview | Demonstration | Requirements | Technologies | Layout | Usage
This project was developed as a Minimum Viable Product (MVP) for future e-commerce projects I might create. Additionally, it was a way to help my family's homemade sweets business grow through a delivery service while also serving as a great challenge for me to improve my skills.
- Framework: Next.js (with TypeScript)
- Backend: Next.js API Routes (Server-side rendering as a challenge)
- Database: Firebase (Easy to manage, free plan suitable for the project’s initial phase)
- CMS: Prismic (Headless CMS for content management)
To bridge the gap between the store owner and the website content, I chose Prismic CMS. It provides an easy-to-use interface for managing dynamic content without requiring direct code changes. Prismic offers:
- A user-friendly UI for managing website content
- A flexible document-based structure
- API-driven content delivery
- Easy integration with Next.js
I also created a Notion manual for store owners to manage content efficiently. You can check it out here.
Developing this project alone meant handling everything from logo redesign and website UI/UX to full-stack development. My main challenges included:
- Building a monolithic structure with Next.js Server-Side Rendering
- Managing a scalable and cost-effective database with Firebase
- Integrating Prismic CMS for seamless content updates
Although there are many aspects to improve and optimize, this journey has been a great learning experience, and I truly enjoyed tackling this challenge!
- When the store is closed, only allow scheduled deliveries
- Admin Module
- Admin can change order delivery or pickup date
- View completed orders
- View user data
- Grant coins to users
- Phone number confirmation
- Integrate order flow with delivery personnel registered by admin
- Order review via Google
- Users earn points after confirming a review
If you're interested in the project or have any feedback, feel free to contribute or reach out!
Delicias.da.Si.-.Demonstration.Video.mp4
- React.js
- Next.js
- Typescript
- Firebase
- Auth
- Firestore
- Prismic CMS
- React Google Maps
- Styled Components
- React Hook Form
- Swiper
- Nodemailer
- Yup
- Eslint
- Airbnb-config with another pessoal rules
- Import helpers plugin
- Prettier
- Commitizen
You can view the project layout via this figma link.
You can clone it on your pc using the command:
git clone https://github.com/Lissone/delicias-da-si.git
cd delicias-da-si
Install dependencies using:
yarn
# or
npm install
Need to add environment variables:
# .\.env.local
# API
NEXT_PUBLIC_BASE_URL_API=http://localhost:3000/api
SECRET_KEY=super_secret
#PRISMIC CMS
NEXT_PUBLIC_PRISMIC_REPOSITORY_NAME=
#GOOGLE ANALYTICS
NEXT_PUBLIC_GA_TRACKING_ID=
#GOOGLE MAPS API
NEXT_PUBLIC_GOOGLE_MAPS_API_KEY=
# FIREBASE
NEXT_PUBLIC_FIREBASE_API_KEY=
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=
NEXT_PUBLIC_FIREBASE_PROJECT_ID=
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=
NEXT_PUBLIC_FIREBASE_APP_ID=
NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=
# NODEMAILER
NODEMAILER_HOST=
NODEMAILER_PORT=
NODEMAILER_USER=
NODEMAILER_PASS=
NODEMAILER_FROM_EMAIL=
# WHATSAPP
WHATSAPP_LINK=
Run application:
yarn dev
# or
npm run dev
The application will be available at http://localhost:3000
Distributed under the MIT License. See LICENSE
for more information.