A comprehensive modular sales management system built with Laravel 12, featuring Email, Logger, Registration, and Authentication modules.
- Robust email handling system with queue support
- Email logging and tracking with status management
- Support for multiple attachments (jpg, jpeg, png, pdf, doc, docx, txt)
- CC and BCC functionality with comma-separated email addresses
- Email status tracking (pending, sent, failed)
- Retry mechanism for failed emails
- File size validation (max 10MB per attachment)
- Comprehensive system logging with multiple log levels
- Support for emergency, alert, critical, error, warning, notice, info, debug levels
- Context-aware logging with JSON support
- IP address and user agent tracking
- Source identification for better debugging
- Structured logging for production environments
- User registration with email verification
- Password reset functionality
- Profile management (view and update)
- Secure password confirmation
- Date of birth validation
- Email verification with token-based system
- User login and logout functionality
- Sanctum-based authentication
- Current user profile retrieval
- Secure session management
- Clone the repository:
git clone https://github.com/RDAS-SOLUTIONS-LIMITED/isalesbookV2.git
cd isalesbookv2- Install dependencies:
composer install- Copy the environment file:
cp .env.example .env- Generate application key:
php artisan key:generate- Configure your database in
.envfile:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=isalesbookv2_db
DB_USERNAME=root
DB_PASSWORD=
- Run migrations:
php artisan migrate- Start the queue worker:
php artisan queue:workConfigure your email settings in .env:
MAIL_MAILER=smtp
MAIL_HOST=......
MAIL_PORT=465
MAIL_USERNAME=info@isalesbook.com
MAIL_PASSWORD=......
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=info@isalesbook.com
MAIL_FROM_NAME="iSalesBook"
FRONTEND_URL=http://localhost:3000
The API documentation is available in OpenAPI format at public/swagger/openapi.yaml. You can view it using Swagger UI at /swagger endpoint.
GET /api/info- Get API information and module status
POST /api/email/send- Send an email with attachmentsGET /api/email/logs- Get email logs with filtering options
POST /api/logger/log- Create a log entryPOST /api/logger/{level}- Log by specific levelGET /api/logger/logs- Get system logs
POST /api/registration/register- Register new userPOST /api/registration/verify-email- Verify email addressPOST /api/registration/forgot-password- Send password reset emailPOST /api/registration/reset-password- Reset passwordGET /api/registration/profile- Get user profilePUT /api/registration/profile- Update user profile
POST /api/auth/login- User loginPOST /api/auth/logout- User logoutGET /api/auth/me- Get current user information
The application uses Laravel's queue system for processing emails. Configure your queue driver in .env:
QUEUE_CONNECTION=database
For development, you can use the provided composer script:
composer run devThis will start:
- Laravel development server
- Queue listener
- Log viewer (Pail)
- Vite development server
Run the test suite:
composer testOr use the artisan command:
php artisan testThe application is configured for production deployment at https://backend-v2.isalesbook.com.
Make sure to set the following environment variables in production:
APP_ENV=production
APP_DEBUG=false
APP_URL=https://backend-v2.isalesbook.com
FRONTEND_URL=https://frontend-domain.com
app/
├── Modules/
│ ├── Email/ # Email handling module
│ ├── Logger/ # System logging module
│ ├── Registration/ # User registration module
│ └── Auth/ # Authentication module
├── Http/Controllers/
├── Models/
└── Providers/
- Laravel 12 - PHP framework
- Laravel Sanctum - API authentication
- Laravel Socialite - Social authentication
- PHPMailer - Email handling
- L5-Swagger - API documentation
- Laravel Pail - Log viewing
- Fork the repository
- Create your 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 licensed under the MIT License - see the LICENSE file for details.
For support and questions, please contact the development team or create an issue in the repository.