Skip to content

Haksham/ARTIFEX

Repository files navigation

Artifex Website 🎨

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.


🌟 Features

  • 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.

🖼️ Interface

Home Page

Home Page

Image Management

Image Management

About Page

About Page


⚙️ Functionality

  1. Gallery: Displays images fetched from Cloudinary.
  2. Add Image: Upload images with titles and descriptions.
  3. Delete Image: Remove images from the gallery.
  4. Authentication: Login functionality using Firebase.
  5. Visitor Count: Tracks and displays the number of visitors using MongoDB.

🛠️ Technology Stack

  • Frontend: React, Next.js, Tailwind CSS
  • Backend: Node.js, MongoDB
  • Authentication: Firebase
  • Image Storage: Cloudinary
  • Deployment: Vercel

📋 Requirements

  • 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

🚀 Installation

  1. Clone the repository:
    git clone https://github.com/your-username/artifex-website.git
    cd artifex-website
    
  2. Install dependencies:
    npm run install
    pip install -r requirements.txt
    
  3. Run the development server:
    - npm run dev
    - npm run build
    - npm run start
    - Open http://localhost:3000 in your browser to view the project.
    
    
    

Project Structure

  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

Acknowledgments

  • Cloudinary for image storage.
  • Firebase for authentication.
  • MongoDB for visitor tracking.
  • Next.js for the framework.
  • Tailwind CSS for styling.

Feel free to contribute to this project by submitting issues or pull requests. Happy coding!