Welcome to Artifex, a platform showcasing the stunning artwork of Paarth Mehta, a professional painter. This website allows users to explore a gallery of paintings, manage images, and learn more about the artist.
- Dynamic Gallery: View a collection of paintings with a clean and responsive design.
- Image Management: Add, delete, and manage images (admin functionality).
- Authentication: Secure login system using Firebase.
- Visitor Counter: Tracks the number of visitors to the website.
- Cloudinary Integration: Efficient image storage and retrieval.
- Responsive Design: Optimized for all devices.
- Gallery: Displays images fetched from Cloudinary.
- Add Image: Upload images with titles and descriptions.
- Delete Image: Remove images from the gallery.
- Authentication: Login functionality using Firebase.
- Visitor Count: Tracks and displays the number of visitors using MongoDB.
- Frontend: React, Next.js, Tailwind CSS
- Backend: Node.js, MongoDB
- Authentication: Firebase
- Image Storage: Cloudinary
- Deployment: Vercel
- Node.js (v16 or higher)
- MongoDB Atlas or local MongoDB instance
- Cloudinary account
- Firebase project with authentication enabled
- Environment variables:
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
CLOUDINARY_CLOUD_NAME
CLOUDINARY_API_KEY
CLOUDINARY_API_SECRET
MONGODB_URI
- Clone the repository:
git clone https://github.com/your-username/artifex-website.git cd artifex-website
- Install dependencies:
npm run install pip install -r requirements.txt
- Run the development server:
- npm run dev - npm run build - npm run start - Open http://localhost:3000 in your browser to view the project.
artifex_website/
├── app/
│ ├── add/
│ │ └── page.js # Add Image Page
│ ├── api/
│ │ ├── route.js # API for image management
│ │ └── visitor-count/
│ │ └── route.js # Visitor count API
│ ├── changes/
│ │ └── page.js # Manage Images Page
│ ├── components/
│ │ ├── footer.js # Footer Component
│ │ ├── header.js # Header Component
│ │ ├── index.js # Gallery Component
│ │ └── remove.js # Remove Image Component
│ ├── firebase/
│ │ └── config.js # Firebase Configuration
│ ├── globals.css # Global Styles
│ ├── info/
│ │ └── page.js # About Page
│ ├── layout.js # Root Layout
│ ├── page.js # Home Page
│ ├── sign-in/
│ │ └── page.js # Sign-In Page
│ └── utils/
│ └── cloudinary.js # Cloudinary Configuration
├── .gitignore # Git Ignore File
├── LICENSE # License File
├── README.md # Project Documentation
├── jsconfig.json # JavaScript Config
├── next.config.mjs # Next.js Config
├── package.json # Project Metadata and Scripts
├── postcss.config.mjs # PostCSS Config
└── tailwind.config.js # Tailwind CSS Config
- Cloudinary for image storage.
- Firebase for authentication.
- MongoDB for visitor tracking.
- Next.js for the framework.
- Tailwind CSS for styling.