AfrikTicket is a comprehensive event ticketing and fundraising platform built with Laravel. It enables organizations to:
- Create and manage events
- Sell tickets
- Run fundraising campaigns
- Track donations and revenues
- Generate detailed analytics
- Multi-role user system (User, Organization, Admin)
- Secure token-based authentication
- Organization verification process
- Create and manage events
- Ticket sales and validation
- Event scheduling and tracking
- Image uploads and management
- Create fundraising campaigns
- Track donations and progress
- Campaign status management
- Real-time analytics
- Revenue tracking
- Event performance metrics
- Donation analytics
- Document management
- User management
- Content moderation
- Organization approval
- System statistics
- PHP >= 8.1
- Composer
- MySQL/MariaDB
- Node.js & NPM
- Laravel CLI
- Clone the repository:
git clone "repourl"
cd afrikticket_back- Install dependencies:
composer install
npm install- Environment setup:
cp .env.example .env
php artisan key:generate- Configure your .env file with database credentials and other settings:
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=your_database DB_USERNAME=your_username DB_PASSWORD=your_password
JWT_SECRET=your_jwt_secret
- Run migrations:
php artisan migratephp artisan serveAPI Documentation
- Regular User
- Organization
- Admin
- Registration (
POST /register) - Login (
POST /login) - Logout (
POST /logout) [Protected] - Get User Profile (
GET /user) [Protected]
- List Events (
GET /events) - Get Single Event (
GET /events/{id}) - Create Event (
POST /events) [Organization Only] - Update Event (
PUT /events/{id}) [Organization Only] - Delete Event (
DELETE /events/{id}) [Organization Only] - Organization Events (
GET /org/events) [Organization Only] - User Events (
GET /user/events) [Protected]
- Purchase Tickets (
POST /events/{eventId}/tickets) [Protected] - Validate Ticket (
POST /tickets/validate) [Organization Only] - User Tickets (
GET /user/tickets) [Protected]
- List Fundraisings (
GET /fundraising) - Get Single Fundraising (
GET /fundraising/{id}) - Create Fundraising (
POST /fundraising) [Organization Only] - Update Fundraising (
PUT /fundraising/{id}) [Organization Only] - Organization Fundraisings (
GET /org/fundraisings) [Organization Only]
- Make Donation (
POST /fundraising/{fundraisingId}/donate) [Protected] - User Donations (
GET /user/donations) [Protected]
- Get Dashboard Stats (
GET /organization/dashboard) [Organization Only]- Events statistics
- Revenue data
- Ticket sales
- Fundraising progress
- Dashboard Stats (
GET /admin/dashboard/stats) - User Management (
GET /admin/users) - Organization Management
- List (
GET /admin/organizations) - Review (
PUT /admin/organizations/{id}/status) - Delete (
DELETE /admin/organizations/{id})
- List (
- Content Moderation
- Pending Content (
GET /admin/pending) - Review Event (
PUT /admin/events/{id}/review) - Review Fundraising (
PUT /admin/fundraisings/{id}/review)
- Pending Content (
- Organizations must upload required documents (ICD & commerce register)
- Organization accounts require admin approval before activation
- Status can be: pending, approved, or rejected
- Events require admin approval before becoming visible
- Include image uploads
- Set ticket quantities and pricing
- Status can be: pending, active, or cancelled
- Require admin approval
- Include goal amount and description
- Track progress and donations
- Status can be: pending, active, completed, or cancelled
- Images: jpeg, png, jpg (max 2MB)
- Documents: pdf, jpg, jpeg, png (max 2MB)
- Clone the repository
- Install dependencies:
composer install - Copy
.env.exampleto.envand configure database - Run migrations:
php artisan migrate - Generate app key:
php artisan key:generate - Start server:
php artisan serve
A complete Postman collection will be provided separately with:
- Pre-configured environments
- Request examples
- Test data
- Authentication flows
The API returns consistent error responses:
{
"status": "error",
"message": "Error description"
}