Basement Mentorships is a web application that allows users to find mentors and mentees in the tech industry. Users can create a profile, search for mentors and mentees, and request mentorships.
Since I decided to mentor many people as possible and asyncronously, came the need of a simple platform to handle that. FYI this code doesn't follow the best practices and I would not tell you to use this code to study until this message vanishes lol.
At the user side, we're running:
- Laravel Blade
- Bootstrap
- jQuery
and on the Admin side, we're running FilamentPHP
.
This will be the stack until I decided to do something better (on user side).
The application uses GitHub OAuth for authentication since it's a tech platform and most of the users will have a GitHub account.
Just a quick explanation of the Models used in the project so far.
Model | Description |
---|---|
User | Meentored person. |
Token | OAuth Credentials for requesting further details. |
Details | Onboarding information for mentoring approval purposes. |
Progress | User task progress with status enumeration. |
Module | Mentoring module that the user will apply. |
Task | Task of a specific module |
Todo | Items of a task that would be cool to deliver. |
The most important table for this project is the users_modules
which handles the acceptance of a mentee in a specific mentoring.
The pivot is managed by the ModuleAttendanceEnum
with the flags:
namespace App\Enums\Module;
enum ModuleAttendanceEnum: string
{
case ON_HOLD = 'onhold';
case ACCEPTED = 'accepted';
case FINISHED = 'finished';
}
and also the Todo Tasks
- PHP 8.2 or higher
- Composer
- Node.js and npm
-
Clone the repository:
git clone https://github.com/DanielHe4rt/your-repo.git
-
Navigate to the project directory:
cd your-repo
-
Install PHP dependencies:
composer install
-
Install JavaScript dependencies:
npm install
-
Copy the example environment file and make the required configuration changes in the
.env
file:cp .env.example .env
-
Generate a new application key:
php artisan key:generate
-
Run the database migrations:
php artisan migrate
Create a new GitHub Application on GitHub with the callback URL below:
http://localhost:8000/oauth/github/callback
![TIP] Don't forget to change to your domain instead
localhost
when deploying to production.
Add the GITHUB_CLIENT_ID
and GITHUB_CLIENT_SECRET
to the .env
file:
GITHUB_CLIENT_ID="your-client-id"
GITHUB_CLIENT_SECRET="your-client-secret"
GITHUB_CLIENT_REDIRECT="http://localhost:8000/oauth/github/callback"
To start the development server, run the following commands:
# terminal 1
php artisan serve
# terminal 2
npm run dev
and this will bring the application up at http://localhost:8000.
This project is open-sourced software licensed under the MIT license.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.