A modern e-commerce platform dedicated to showcasing and selling authentic handcrafted products from local artisans and cooperatives.
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.
π§ 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!
A short preview of the platform will be added here soon.
- 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
- 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
- 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
- Docker & Docker Compose - Containerized development environment
- PHPUnit - PHP testing framework
- Symfony Maker Bundle - Code generation tools
- Web Profiler - Development and debugging tools
- PHP 8.2 or higher
- Composer
- Node.js and npm
- Docker and Docker Compose (for containerized setup)
- PostgreSQL 16 (or use Docker)
git clone https://github.com/Mereyem02/Artisana.git
cd Artisana# Install PHP dependencies
composer install
# Install JavaScript dependencies
npm install# Copy the environment file
cp .env .env.local
# Edit .env.local with your configuration
# Update database credentials and other settings# 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# 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# Development build
npm run dev
# Production build
npm run build
# Watch mode (auto-rebuild on changes)
npm run watchsymfony serve
# Or using PHP built-in server
php -S localhost:8000 -t public/Visit http://localhost:8000 in your browser.
php bin/console app:create-adminFollow the prompts to create an admin user account.
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
# Run all tests
php bin/phpunit
# Run specific test file
php bin/phpunit tests/Controller/ProductControllerTest.php# 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 srcThis project follows Symfony coding standards. Please ensure your code adheres to these standards before submitting contributions.
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- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is proprietary software. All rights reserved.
For support and questions, please contact the project maintainers.
- 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
