B8 Platform is a focused mentoring and community platform, centered around the BGr8 initiative and powered by a unique MentorAlgorithm.
π Table of Contents
B8 Platform is dedicated to empowering individuals through the BGr8 community and a robust mentoring program. The platform now focuses exclusively on:
Unit | Description | Status |
---|---|---|
π BGr8 | Community, events, and mentoring | Live |
Click to expand feature list
- π BGr8 community hub
- π€ Mentor matching and management (MentorAlgorithm)
- π Secure authentication
- π³ Secure payment processing with Stripe
- π± Responsive design
- π Analytics integration
- π¬ Enquiries and admin management
- π Firebase authentication
- π₯ Firestore database
- πΈ Stripe payments
- β‘ Real-time updates
- π§βπ» Modern React + TypeScript stack
Our platform is built with modern technologies:
graph TD
A[Frontend] --> B[React + TypeScript]
A --> C[Vite]
D[Backend Services] --> E[Firebase]
E --> F[Authentication]
E --> G[Firestore]
E --> H[Storage]
I[Analytics] --> J[Google Analytics]
K[Payments] --> L[Stripe]
L --> M[Stripe Checkout]
L --> N[Stripe Webhooks]
Before you begin, ensure you have:
- Node.js (v16.x or higher)
- npm (v8.x or higher)
- Firebase account and project
- Stripe account with API keys
- Stripe CLI (for webhook testing)
Step-by-step installation guide
-
Clone the repository:
git clone https://github.com/Hum2a/B8.git cd B8
-
Install dependencies:
npm install
-
Set up environment variables: You will need your own firebase account. Get the correct
.env
file from Hum2a to place in the root directory. -
Set up Stripe server environment: Place the stripe
.env
file provided by Hum2a into the stripe directory, or create it as follows:STRIPE_SECRET_KEY=your_stripe_secret_key STRIPE_WEBHOOK_SECRET=your_stripe_webhook_secret PORT=3001 CLIENT_URL=http://localhost:5173
-
Start the development servers:
# Start the main application npm run dev # Start the Stripe server (in a separate terminal) cd stripe && node server.js
Required environment variables:
View all environment variables
Variable | Description | Required |
---|---|---|
VITE_FIREBASE_API_KEY |
Firebase API Key | β |
VITE_FIREBASE_AUTH_DOMAIN |
Firebase Auth Domain | β |
VITE_FIREBASE_PROJECT_ID |
Firebase Project ID | β |
VITE_FIREBASE_STORAGE_BUCKET |
Firebase Storage Bucket | β |
VITE_FIREBASE_MESSAGING_SENDER_ID |
Firebase Messaging Sender ID | β |
VITE_FIREBASE_APP_ID |
Firebase App ID | β |
VITE_FIREBASE_MEASUREMENT_ID |
Firebase Measurement ID | β |
VITE_STRIPE_PUBLISHABLE_KEY |
Stripe Publishable Key | β |
VITE_STRIPE_SERVER_URL |
Stripe Server URL | β |
STRIPE_SECRET_KEY |
Stripe Secret Key (server) | β |
STRIPE_WEBHOOK_SECRET |
Stripe Webhook Secret (server) | β |
# Run unit tests
npm run test
# Run end-to-end tests
npm run test:e2e
# Run tests in CI environment
npm run test:ci
View project structure
B8/
βββ src/
β βββ components/ # React components
β βββ pages/ # Page components
β βββ hooks/ # Custom React hooks
β βββ contexts/ # React context providers
β βββ services/ # API and service integrations
β βββ utils/ # Utility functions
β βββ types/ # TypeScript type definitions
β βββ MentorAlgorithm/ # Mentor matching logic
βββ stripe/ # Stripe server
βββ public/ # Static assets
βββ ...
See CONTRIBUTING.md for guidelines.
This project is licensed under the MIT License.
See SECURITY.md for security policy and reporting.
For questions, contact Humza (Hum2a) or open an issue.
Thanks to all contributors and the BGr8 community!