An innovative web platform designed to promote sustainable resource management and responsible consumption
π₯ Live Demo β’ π Documentation β’ π€ Contributing β’ π§ Contact
Experience the power of sustainable resource management with our comprehensive ecological platform featuring advanced UI styling and the signature #6BB748 ecological theme.
π Dynamic homepage featuring real-time forum posts, upcoming events, and partner showcase with elegant transparent navigation
π¨βπ» Meet our dedicated development team working towards a sustainable future through innovative technology
- π Overview
- β¨ Key Features
- π οΈ Technology Stack
- π¦ Installation
- π Usage
- π― Core Modules
- π Authentication
- π Dashboard & Analytics
- π API Documentation
- π§ͺ Testing
- π€ Contributing
- π License
- π Contact
eco.net is a comprehensive ecological platform that empowers businesses, organizations, and individuals to track, analyze, and optimize their environmental impact. Built with modern web technologies and featuring an advanced UI with our signature ecological theme (#6BB748), the platform provides powerful tools for sustainable resource management and community engagement.
To create a greener and more sustainable future by providing innovative digital solutions that promote environmental responsibility and community collaboration.
- π Resource Tracking & Optimization β Real-time monitoring and analytics for resource consumption
- π Eco-Friendly Practices β Insights and recommendations to reduce waste and improve sustainability
- π Environmental Challenges β Gamified sustainability challenges with progress tracking
- π Impact Analytics β Comprehensive reports and data visualization
- οΏ½ Community Forums β Connect with like-minded individuals and organizations
- π€ Partnership Management β Business and Non-profit partner integration
- πͺ Event Management β Organize and participate in environmental events
- οΏ½ Donation System β Support environmental causes (Monetary, Material, Service)
- ποΈ Eco-Product Marketplace β Buy and sell ecological products
- π¦ Order Management β Complete e-commerce functionality
- π·οΈ Product Categorization β Organized by ecological impact and origin
- οΏ½ Multi-Authentication β Email/Password, Google OAuth, GitHub OAuth
- π€ Role-Based Access Control β Admin, User, Partner roles
- π Face ID Recognition β Advanced biometric authentication
- π Secure Profile Management β Comprehensive user profiles with verification
- ποΈ Advanced Admin Dashboard β Comprehensive management interface
- π Real-time Analytics β User engagement, event participation, donation tracking
- π Content Management β Forums, events, products, partnerships
- π§ System Configuration β Customizable settings and notifications
- Framework: Symfony 6.4 (PHP 8.1+)
- Database: MySQL with Doctrine ORM
- Authentication: Symfony Security Bundle + OAuth2
- File Processing: Liip Imagine Bundle for image handling
- PDF Generation: DomPDF for reports
- Data Analysis: RubixML for machine learning insights
- Template Engine: Twig
- JavaScript: Stimulus (Hotwired)
- CSS Framework: Custom ecological theme with Bootstrap integration
- UI Components: Advanced responsive design with #6BB748 color scheme
- Real-time Features: Turbo for dynamic updates
- QR Code Generation: Endroid QR Code Bundle
- Pagination: KnpPaginatorBundle
- Sentiment Analysis: PHP Sentiment Analyzer
- Spreadsheet Processing: PhpSpreadsheet
- Image Processing: GD/Imagick support
- PHP 8.1 or higher
- Composer
- MySQL 5.7+ or MariaDB 10.3+
- Node.js 16+ (for asset compilation)
- XAMPP/WAMP (for local development)
-
Clone the Repository
git clone https://github.com/fekikarim/econet.git cd econet-symfony/econet -
Install Dependencies
composer install npm install
-
Environment Configuration
cp .env .env.local # Edit .env.local with your database credentials and API keys -
Database Setup
php bin/console doctrine:database:create php bin/console doctrine:migrations:migrate php bin/console doctrine:fixtures:load # Optional: Load sample data -
Asset Compilation
php bin/console importmap:install php bin/console asset-map:compile
-
Download Required Images
# Download the image assets from MediaFire # URL: https://www.mediafire.com/file/7nc71o7l2i3m4f9/img.rar/file # Extract the img.rar file and place the 'img' folder in assets/front/ # Final structure should be: assets/front/img/
π₯ Download Link: img.rar - Required Image Assets
Instructions:
- Download the
img.rarfile from the link above - Extract the archive to get the
imgfolder - Place the extracted
imgfolder insideassets/front/ - Verify the structure:
assets/front/img/contains all image assets
- Download the
-
File Permissions
# For XAMPP on Windows mkdir C:\xampp\htdocs\img\event mkdir C:\xampp\htdocs\img\profiles mkdir C:\xampp\htdocs\images
-
Start Development Server
symfony server:start
Download Required: img.rar - Image Assets
Setup Instructions:
# 1. Download img.rar from the MediaFire link
# 2. Extract the archive
# 3. Place the 'img' folder in: assets/front/img/
# 4. Verify structure: assets/front/img/ contains all imagesConfigure your OAuth providers in .env.local:
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
GITHUB_CLIENT_ID=your_github_client_id
GITHUB_CLIENT_SECRET=your_github_client_secret# config/services.yaml
parameters:
products_images_directory: 'C:\xampp\htdocs\img'
partners_logos_directory: 'C:\xampp\htdocs\images'
challenges_directory: 'C:\xampp\htdocs\img'
users_directory: 'C:\xampp\htdocs\img\profiles'- Dynamic content featuring latest forum posts and upcoming events
- Partner showcase with real-time statistics
- Transparent navigation with smooth scrolling effects
- Advanced registration form with password strength indicators
- Gender selection and profile customization
- Email verification and account setup process
- Multiple authentication methods (Email, Google, GitHub, Face ID)
- Create and manage environmental events
- Registration system with capacity management
- Image upload and event categorization
- Real-time availability tracking
- Partner registration for businesses and non-profits
- Admin approval workflow
- Partnership statistics and analytics
- Integration with donation system
- Multiple donation types: Monetary, Material, Service
- Dynamic payment method requirements
- Partner-linked donations
- Comprehensive donation tracking and reporting
#[ORM\Entity(repositoryClass: ChallengeRepository::class)]
class Challenge
{
#[ORM\Column(length: 255)]
#[Assert\NotBlank(message: 'Please enter a name')]
private ?string $name = null;
#[ORM\Column(type: Types::TEXT)]
#[Assert\NotBlank(message: 'Please enter a description')]
private ?string $description = null;- Gamified Environmental Challenges with progress tracking
- Duration-based Challenges with start and end dates
- Quiz Integration for educational content
- Image Support for visual challenge representation
#[ORM\Entity(repositoryClass: EventRepository::class)]
class Event
{
#[ORM\Column(nullable: true)]
#[Assert\Range(min: 1, max: 250)]
private ?int $max_participants = null;
public function getAvailableSpots(): ?int
{
return $this->max_participants - $this->eventRegistrations->count();
}- Event Registration System with capacity management
- Real-time Availability Tracking and booking status
- Organizer Management with user assignment
- Image Upload for event promotion
#[Assert\Choice(
choices: ['Sponsor', 'Fournisseur', 'Client', 'Business', 'Non-profit', 'Autre'],
message: 'Veuillez choisir un type valide'
)]
private ?string $type = null;
#[ORM\Column(type: 'boolean', options: ['default' => false])]
private bool $isAccepted = false;- Multi-type Partners (Business, Non-profit, Sponsors, etc.)
- Admin Approval Workflow for partner verification
- Geographic Integration with latitude/longitude support
- Logo Management and partner branding
public const VALID_TYPES = ['Monetary', 'Material', 'Service'];
public const VALID_STATUSES = ['pending', 'approved', 'completed', 'cancelled'];
public const VALID_PAYMENT_METHODS = ['cash', 'bank_transfer', 'check', 'credit_card', 'none'];- Multiple Donation Types with flexible payment methods
- Status Tracking from pending to completion
- Partner Integration for donation attribution
- Validation Rules for amount and type constraints
- Email/Password with advanced validation
- Google OAuth2 integration
- GitHub OAuth2 integration
- Face ID Recognition for biometric authentication
#[ORM\Column(length: 255)]
private ?string $role = null;
#[ORM\Column(length: 255)]
private ?string $auth_method = null;
#[ORM\Column]
private ?bool $verified = null;- Role-Based Access Control (Admin, User, Partner)
- Account Verification system
- Profile Management with image upload
- Gender Selection and demographic data
- Password Strength Validation with real-time indicators
- Remember Me functionality
- Account Lockout protection
- Secure Session Management
#[Route('/back', name: 'back_')]
#[IsGranted('ROLE_ADMIN', message: 'You need admin privileges')]
class BackDashboardController extends AbstractController
{
public function index(
UserRepository $userRepository,
EventRepository $eventRepository,
// ... other repositories
): Response- Real-time Statistics for all platform modules
- User Analytics with role distribution
- Event Participation tracking
- Donation Monitoring and financial reports
- Partner Management with approval workflows
- Interactive Charts using Chart.js
- Export Functionality with PDF generation
- Data Visualization for trends and insights
- Performance Metrics for platform optimization
The platform provides comprehensive API endpoints for:
- User Management (
/api/users) - Event Operations (
/api/events) - Partner Integration (
/api/partners) - Donation Processing (
/api/donations) - Forum Interactions (
/api/forums)
All API endpoints follow RESTful conventions with JSON request/response format:
{
"status": "success",
"data": {
"id": 1,
"name": "Environmental Challenge",
"description": "Reduce plastic usage by 50%"
},
"message": "Challenge created successfully"
}Run the comprehensive test suite:
# Run all tests
php bin/phpunit
# Run specific test categories
php bin/phpunit tests/Unit
php bin/phpunit tests/Integration
php bin/phpunit tests/Functional
# Generate coverage report
php bin/phpunit --coverage-html coverage- Unit Tests for individual components
- Integration Tests for database operations
- Functional Tests for user workflows
- API Tests for endpoint validation
We welcome contributions from the community! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Add tests for new functionality
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow PSR-12 coding standards
- Write comprehensive tests for new features
- Update documentation for API changes
- Use semantic commit messages
- Ensure all tests pass before submitting
Please use the GitHub issue tracker to report bugs. Include:
- Detailed description of the issue
- Steps to reproduce
- Expected vs actual behavior
- Environment details (PHP version, OS, etc.)
This project is licensed under a Proprietary Academic License developed specifically for the eco.net platform.
- Type: Academic Proprietary License
- Copyright: Β© 2024-2025 ESPRIT Engineering School - eco.net Development Team
- Project: PIDEV (Integrated Development Project)
- Academic Year: 2024-2025
- π Academic Review by faculty and educational institutions
- π Educational Demonstration in academic settings
- πΌ Portfolio Showcase by team members
- π Research Reference in scholarly publications
- π« No Commercial Use without explicit permission
- π« No Redistribution or sublicensing
- π« No Derivative Works for distribution
- π« Trademark Protection for eco.net branding
For permissions, academic collaboration, or licensing questions, contact:
- Lead Developer: Karim Feki (Feki.Karim@esprit.tn)
- Institution: ESPRIT (https://esprit.tn/)
Full License: See LICENSE file for complete terms and conditions.
| Name | Role | |
|---|---|---|
| Karim Feki | Challenges Management | Feki.Karim@esprit.tn |
| Nesrine Derouiche | Forums Management | Nesrine.Derouiche@esprit.tn |
| Mohamed Abidi | User Management | abidi.mohamed.1@esprit.tn |
| Salma Laifi | Product Management | Salma.Laifi@esprit.tn |
| Amira Ghober | Events Management | amira.ghobber@esprit.tn |
| Amin Hmem | Donations Management | Amin.Hmem@esprit.tn |
ESPRIT - Γcole SupΓ©rieure PrivΓ©e d'IngΓ©nierie et de Technologies Academic Year: 2024-2025 Project: PIDEV (Projet IntΓ©grΓ© de DΓ©veloppement)
- π Website: eco.net
- π± Social Media: Follow us for updates and environmental tips