Skip to content

ThiLourenco/e-commerce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Banner

GitHub contributors GitHub discussions GitHub issues GitHub pull request

This readme can also be read in Brazilian Portuguese or English.

☁️ Deploy

You can access it through this link Store 88

📌 Project

The e-commerce project is a concrete example of my work in web development, demonstrating my skills and knowledge. This application represents a complete solution for online shopping, covering everything from the customer experience to product administration.

🔍 Table of Contents

💻 Stack

This project makes use of a modern and essential technology stack, including:

  • next-sanity: Integration between Next.js and Sanity CMS.

  • react-hook-form: Library for building forms with React, providing form validation and handling.

  • sanity/client: Official Sanity client library for JavaScript.

  • stripe/stripe-js: JavaScript library for interacting with the Stripe API.

  • typescript: A typed superset of JavaScript that compiles to plain JavaScript.

  • zod: TypeScript-first schema validation library.

  • next: Framework for server-rendered React applications.

  • next-auth: Authentication library that simplifies session management and ensures user security in Next.js applications.

  • react: JavaScript library for building user interfaces.

  • react-dom: Entry point to the DOM and server renderers for React.

  • tailwindcss: A utility CSS framework that accelerates the development of user interfaces with consistent styles.

  • prisma/client: Prisma client for database access and ORM.

  • nodemailer: Nodemailer is a module for Node.js applications to allow easy as cake email sending.

  • And many others: Additionally, technologies such as shadcn, Radix UI and React Email to create a complete and robust experience.

📝 Project Summary

  • app: Main application directory containing various pages and components.
  • app/api: Directory for API endpoints related to authentication, cart, user registration, etc.
  • app/cart: Handles functionality related to the user's shopping cart.
  • app/dashboard: Contains components and pages related to the admin dashboard.
  • app/products: Manages functionality related to displaying and managing products.
  • components: Reusable UI components used throughout the application.
  • config: Directory for project configuration files.
  • prisma: Contains database schema and migration files.
  • public: Directory for static assets and public files.
  • sanity: Handles content management using Sanity CMS.

📝 Features

Products Features

Feature Check? Description
Add a Product Ability of Add a Product on the System
List Products Ability of List Products
Edit a Product Ability of Edit a Product
Delete a Product Ability of Delete a Product

Purchase Features

Feature Check? Description
Create a Cart Ability of Create a new Cart
See Cart Ability to see the Cart and it items
Remove a Cart Ability of Remove a Cart
Add Item Ability of add a new Item on the Cart
Remove a Item Ability of Remove a Item from the Cart
Checkout Ability to Checkout

User Features

Feature Check? Description
Create a User Ability of Create a new User
User Login Ability to Login
User Logoff Ability to Logoff
Password Recovery Ability to recover a User Password

🗺️ Roadmap

  • Task #1: page with list of orders with private route.
  • Task #2: authentication flow.
  • Task #3: creating a store user's purchase history, persisting in the database.
  • [ ] Task #4: email order information after purchase.
  • more others...

⚙️ Setting Up

.env.example

# Sanity Settings
NEXT_PUBLIC_SANITY_PROJECT_ID=
NEXT_PUBLIC_SANITY_DATASET=
NEXT_PUBLIC_SANITY_API_VERSION=
NEXT_PUBLIC_SANITY_USE_CDN=
NEXT_PUBLIC_SANITY_TOKEN=

# Stripe API Key
NEXT_PUBLIC_STRIPE_PUBLIC_KEY=
STRIPE_SECRET_KEY=

# Prisma Database URL
DATABASE_URL=

# NextAuth
NEXT_PUBLIC_SECRET=
NEXTAUTH_URL=

# Google Provider
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=

# E-mail Provider (Nodemailer)
EMAIL_MAIL=
EMAIL_PASSWORD=

# Production Nodemailer
NODEMAILER_DOMAIN=
DOMAIN=

🚀 Run Locally

You must have the following installed on your machine to run this project:

1.Clone the e-commerce repository:

git clone https://github.com/ThiLourenco/e-commerce

2.Install the dependencies with one of the package managers listed below:

pnpm install
npm install

3.Start the development mode:

pnpm dev
npm run dev

🙌 Contributors

📄 License

This project is licensed under the MIT License - see the MIT License file for details.

About

This application represents a complete solution for online shopping.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published