A skill-sharing and service marketplace platform built with PHP where users can post services, browse offerings, and connect with service providers in their community.
- User Authentication: Secure registration and login system with session management
- Skill Posts: Create, browse, edit, and delete service offerings
- Categories: Organized skill posts by categories for easy navigation
- Search Functionality: Find services and providers quickly
- User Profiles: Manage personal information, bio, location, and avatar
- Messaging System: Contact service providers directly through the platform
- Location-Based: Filter and search services by location
- Price Range: Set price ranges for services
- Image Upload: Support for multiple images per skill post
- Role-Based Access: Member and admin user roles
- Backend: PHP 8+ (with strict types)
- Database: MySQL 8.0+
- Architecture: MVC (Model-View-Controller)
- Router: Custom routing system
- Session Management: PHP native sessions
- File Uploads: Image upload support for avatars and skill posts
- PHP 8.0 or higher
- MySQL 8.0 or higher
- Web server (Apache/Nginx)
- Composer (optional, for dependency management)
-
Clone the repository
git clone https://github.com/Kubanabaraka/BridgeBoard.git cd BridgeBoard -
Set up the database
mysql -u root -p < sql/bridgeboard.sql -
Configure environment variables
cp .env.example .env
Edit
.envwith your database credentials and application settings:APP_NAME=BridgeBoard APP_ENV=local APP_DEBUG=true APP_URL=http://localhost/BridgeBoard/public DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=bridgeboard DB_USERNAME=root DB_PASSWORD=your_password SESSION_NAME=bridgeboard_session UPLOAD_MAX_SIZE=5242880 ALLOWED_IMAGE_TYPES=jpg,jpeg,png,webp
-
Set up file permissions
chmod -R 755 storage
-
Configure your web server
Point your web server's document root to the
publicdirectory.Apache example (
.htaccessshould handle rewriting):DocumentRoot /path/to/BridgeBoard/public -
Access the application
Navigate to
http://localhost/BridgeBoard/publicin your browser
BridgeBoard/
├── config/ # Configuration files
│ ├── app.php # Application config
│ └── database.php # Database config
├── public/ # Public web directory
│ └── index.php # Application entry point
├── sql/ # Database schemas and migrations
│ └── bridgeboard.sql # Database schema
├── src/ # Application source code
│ ├── Controllers/ # Request handlers
│ ├── Core/ # Core framework components
│ ├── Models/ # Data models
│ └── Services/ # Business logic services
├── storage/ # File uploads and cache
├── tools/ # Development tools
├── bootstrap.php # Application bootstrap
├── . env.example # Environment variables template
└── . gitignore # Git ignore rules
GET /- Home pageGET /register- Registration formPOST /register- Process registrationGET /login- Login formPOST /login- Process loginPOST /logout- Logout user
GET /dashboard- User dashboardGET /posts- Browse skill postsGET /posts/create- Create new post formPOST /posts- Store new postGET /posts/{id}- View post detailsGET /posts/{id}/edit- Edit post formPOST /posts/{id}/update- Update postPOST /posts/{id}/delete- Delete postGET /search- Search postsGET /profile- Current user profileGET /profile/{id}- View user profilePOST /profile- Update profileGET /contact- Messages inboxPOST /contact- Send message
- Max file size: 5MB (5242880 bytes)
- Allowed image types: jpg, jpeg, png, webp
- Session name: bridgeboard_session (configurable)
- Charset: utf8mb4
- Collation: utf8mb4_unicode_ci
The application uses four main tables:
- users: User accounts with authentication and profile information
- categories: Service categories for organizing posts
- skill_posts: Service listings with details, pricing, and images
- messages: Direct messaging between users
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is open source and available under the MIT License.
Kubanabaraka
- GitHub: @Kubanabaraka
If you discover any bugs, please create an issue on GitHub with detailed information about the problem.
- Built with PHP and MySQL
- Uses custom MVC architecture
- Designed for community skill-sharing
Made with ❤️ by Kubanabaraka