Skip to content

Mereyem02/Artisana

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Artisana

A modern e-commerce platform dedicated to showcasing and selling authentic handcrafted products from local artisans and cooperatives.

πŸ“– About

Artisana is a Symfony-based web application that connects artisans with customers looking for unique, handmade products. The platform allows artisans to showcase their crafts, manage inventory, and sell their products directly to consumers while providing customers with an intuitive shopping experience.

πŸŽ₯ Demo

🚧 Live Demo Coming Soon

A live demonstration of the platform will be available soon. The demo will showcase the main features of Artisana, including product browsing, artisan profiles, and the shopping experience.

Stay tuned for updates!


Preview

A short preview of the platform will be added here soon.

Artisana Demo

✨ Features

  • Artisan Profiles: Detailed profiles for artisans with bio, skills, and contact information
  • Product Catalog: Browse and search through a variety of handcrafted products
  • Shopping Cart: Full-featured shopping cart with real-time updates
  • User Management: User registration, authentication, and account management
  • Cooperative Support: Support for artisan cooperatives and groups
  • Admin Panel: Administrative interface for managing products, artisans, and users
  • Responsive Design: Built with Tailwind CSS for a beautiful, mobile-friendly experience
  • Product Media: Support for multiple product images and media
  • Real-time Notifications: SweetAlert2 integration for user feedback

πŸ› οΈ Technology Stack

Backend

  • PHP 8.2+ - Modern PHP with latest features
  • Symfony 7.4 - Latest Symfony framework
  • Doctrine ORM - Database abstraction and ORM
  • PostgreSQL 16 - Robust relational database
  • Symfony Security - Authentication and authorization
  • Doctrine Fixtures - Database seeding and test data

Frontend

  • Tailwind CSS - Utility-first CSS framework
  • Stimulus - JavaScript framework for enhanced interactivity
  • Symfony UX Turbo - SPA-like experience without complexity
  • SweetAlert2 - Beautiful, customizable alerts
  • Webpack Encore - Asset management and bundling

Development Tools

  • Docker & Docker Compose - Containerized development environment
  • PHPUnit - PHP testing framework
  • Symfony Maker Bundle - Code generation tools
  • Web Profiler - Development and debugging tools

πŸ“‹ Requirements

  • PHP 8.2 or higher
  • Composer
  • Node.js and npm
  • Docker and Docker Compose (for containerized setup)
  • PostgreSQL 16 (or use Docker)

πŸš€ Installation

1. Clone the Repository

git clone https://github.com/Mereyem02/Artisana.git
cd Artisana

2. Install Dependencies

# Install PHP dependencies
composer install

# Install JavaScript dependencies
npm install

3. Configure Environment

# Copy the environment file
cp .env .env.local

# Edit .env.local with your configuration
# Update database credentials and other settings

4. Setup Database

Using Docker (Recommended)

# Start the database container
docker-compose up -d

# Wait for the database to be ready, then run migrations
php bin/console doctrine:migrations:migrate

# Load fixtures (optional - for development/testing)
php bin/console doctrine:fixtures:load

Manual Database Setup

# Create the database
php bin/console doctrine:database:create

# Run migrations
php bin/console doctrine:migrations:migrate

# Load fixtures (optional)
php bin/console doctrine:fixtures:load

5. Build Assets

# Development build
npm run dev

# Production build
npm run build

# Watch mode (auto-rebuild on changes)
npm run watch

6. Start the Development Server

symfony serve
# Or using PHP built-in server
php -S localhost:8000 -t public/

Visit http://localhost:8000 in your browser.

πŸ‘€ Creating an Admin User

php bin/console app:create-admin

Follow the prompts to create an admin user account.

πŸ“‚ Project Structure

Artisana/
β”œβ”€β”€ assets/              # Frontend assets (JS, CSS)
β”‚   β”œβ”€β”€ controllers/     # Stimulus controllers
β”‚   β”œβ”€β”€ styles/          # CSS files
β”‚   └── app.js          # Main JavaScript entry point
β”œβ”€β”€ bin/                 # Console scripts
β”œβ”€β”€ config/              # Application configuration
β”œβ”€β”€ migrations/          # Database migrations
β”œβ”€β”€ public/              # Public web directory
β”‚   β”œβ”€β”€ css/            # Compiled CSS
β”‚   └── index.php       # Front controller
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ Command/        # Console commands
β”‚   β”œβ”€β”€ Controller/     # Application controllers
β”‚   β”œβ”€β”€ DataFixtures/   # Database fixtures
β”‚   β”œβ”€β”€ Entity/         # Doctrine entities
β”‚   β”œβ”€β”€ Form/           # Form types
β”‚   β”œβ”€β”€ Repository/     # Database repositories
β”‚   └── Service/        # Business logic services
β”œβ”€β”€ templates/          # Twig templates
β”œβ”€β”€ tests/              # PHPUnit tests
β”œβ”€β”€ translations/       # Translation files
β”œβ”€β”€ composer.json       # PHP dependencies
β”œβ”€β”€ package.json        # JavaScript dependencies
└── webpack.config.js   # Webpack configuration

πŸ§ͺ Testing

# Run all tests
php bin/phpunit

# Run specific test file
php bin/phpunit tests/Controller/ProductControllerTest.php

πŸ”§ Development

Available Commands

# Clear cache
php bin/console cache:clear

# Create a new controller
php bin/console make:controller

# Create a new entity
php bin/console make:entity

# Generate a migration
php bin/console make:migration

# List all routes
php bin/console debug:router

# Check code style
vendor/bin/phpstan analyse src

Code Style

This project follows Symfony coding standards. Please ensure your code adheres to these standards before submitting contributions.

🌐 Environment Variables

Key environment variables in .env.local:

APP_ENV=dev
APP_SECRET=your-secret-key
DATABASE_URL="postgresql://app:[email protected]:5432/app?serverVersion=16&charset=utf8"
MAILER_DSN=null://null

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ License

This project is proprietary software. All rights reserved.

πŸ‘₯ Support

For support and questions, please contact the project maintainers.

🎯 Roadmap

  • Payment gateway integration
  • Order tracking system
  • Review and rating system
  • Wishlist functionality
  • Email notifications
  • Advanced search and filtering
  • Multi-language support
  • Mobile app

Made with ❀️ for artisans and craft enthusiasts

About

Artisana is an e-commerce platform that connects local artisans with customers by enabling them to showcase, manage, and sell handcrafted products online through a modern and user-friendly web application.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors