A brand and product management system built with React, TypeScript, and Firebase.
- 🌓 Dark/Light mode
- 🔐 Authentication
- 📱 Responsive design
- 🏷️ Brand management
- 📦 Product management
- 🔍 Search functionality
- 🖼️ Image upload with Cloudinary
- React 18
- TypeScript
- Tailwind CSS
- Firebase
- Vite
- Cloudinary
Create a .env
file in the root directory with the following variables:
VITE_FIREBASE_API_KEY
VITE_FIREBASE_AUTH_DOMAIN
VITE_FIREBASE_PROJECT_ID
VITE_FIREBASE_STORAGE_BUCKET
VITE_FIREBASE_MESSAGING_SENDER_ID
VITE_FIREBASE_APP_ID
VITE_CLOUDINARY_CLOUD_NAME
- Email:
admin@brandly.com
- Password:
Brandlyadmin
To start the project locally, run:
npm run dev
Open http://localhost:5173
with your browser to see the result.
- Node.js >= 20
- npm >= 10
.github
— GitHub configuration including the CI workflow..husky
— Husky configuration and hooks.public
— Static assets such as robots.txt, images, and favicon.src
— Application source code, including pages, components, styles.
npm run dev
— Starts the application in development mode athttp://localhost:5173
.npm run build
— Creates an optimized production build of your application.npm run type-check
— Validate code using TypeScript compiler.npm run lint
— Runs ESLint for all files in thesrc
directory.npm run format
— Runs Prettier for all files in thesrc
directory.
TypeScript are pre-configured with custom path mappings. To import components or files, use the @
prefix.
// To import images or other files from the public folder
import avatar from '@/public/avatar.png'
import { Button } from '@/components/Button'
This starter uses npm by default, but this choice is yours. If you'd like to switch to Yarn/pnpm, delete the package-lock.json
file, install the dependencies with Yarn/pnpm, change the CI workflow, and Husky Git hooks to use Yarn/pnpm commands.
Note: If you use Yarn, make sure to follow these steps from the Husky documentation so that Git hooks do not fail with Yarn on Windows.
This project is licensed under the MIT License - see the LICENSE.md file for more information..