Capstone Program Immersive Alterra Academy
| Open API Documentation |
MUSICLAB is an online web-app that used by user to find music teacher. There are many genres and instruments that will be available in this web-app. In this web-app User(Student) can book a music class depend on their choice and the Mentor can make their own music class after fill the credential. In order to make sure our app works well and following the requirements. We as a backend engineer build efficient and tested our systems.
🎫 Auth
Method | Endpoint | Params | q-Params | JWT Token | Function |
---|---|---|---|---|---|
POST | /register | - | - | NO | Register a new User |
POST | /login | - | - | NO | Login to the system |
🎫 Google Oauth2
Method | Endpoint | Params | q-Params | JWT Token | Function |
---|---|---|---|---|---|
POST | /login/oauth | - | - | NO | Login with google |
POST | /oauth/create-event | - | - | NO | Make event in google calender |
👨💼 Student
Method | Endpoint | Params | q-Params | JWT Token | Function |
---|---|---|---|---|---|
GET | /students/profile | - | - | YES | Show Student Profile |
PUT | /students | - | - | YES | Update Student Profile |
PUT | /students/password | - | - | YES | Update Student Password |
DELETE | /students | - | - | YES | Deactivate Student |
👩🏫 Mentor
Method | Endpoint | Params | q-Params | JWT Token | Function |
---|---|---|---|---|---|
GET | /mentors | - | name, genre, instrument, rating, qualification | NO | Show All Mentor List |
GET | /mentors/topweek | - | - | NO | Show Top Week Mentor by Rating |
POST | /mentors/credentials | - | - | YES | Post Mentor Credential |
GET | /mentors/{mentor_id} | mentor_id | - | NO | Show Detail Mentor |
GET | /mentors/profile | - | - | YES | Show Mentor Profile |
PUT | /mentors | - | - | YES | Update Mentor Profile |
PUT | /mentors/password | - | - | YES | Update Mentor Password |
DELETE | /mentors | - | - | YES | Deactivate Mentor |
🎸 Instrument
Method | Endpoint | Params | q-Params | JWT Token | Function |
---|---|---|---|---|---|
GET | /instruments | - | - | NO | Show All Instrument List |
POST | /mentors/instruments | - | - | YES | Post Mentor Instrument |
GET | /mentors/{mentor_id}/instruments | mentor_id | - | NO | Show All Mentor Instrument by Mentor ID |
DELETE | /mentors/instruments/{instrument_id} | instrument_id | - | YES | Delete Mentor Instrument |
🎵 Genre
Method | Endpoint | Params | q-Params | JWT Token | Function |
---|---|---|---|---|---|
GET | /genres | - | - | NO | Show All Genre List |
POST | /mentors/genres | - | - | YES | Post Mentor Genre |
GET | /mentors/{mentor_id}/genres | mentor_id | - | NO | Show All Mentor Genre by Mentor ID |
DELETE | /mentors/genres/{genre_id} | genre_id | - | YES | Delete Mentor Genre |
📃 Review
Method | Endpoint | Params | q-Params | JWT Token | Function |
---|---|---|---|---|---|
POST | /mentors/{mentor_id}/reviews | mentor_id | - | YES | Make a Review in Mentor Class |
GET | /mentors/{mentor_id}/reviews | mentor_id | - | NO | Show All Mentor Mentor Review by Mentor ID |
💬 Chat
Method | Endpoint | Params | q-Params | JWT Token | Function |
---|---|---|---|---|---|
POST | /chats | - | - | YES | Send a Message |
GET | /chats | - | student_id, mentor_id | YES | GET a Chat by student_id or mentor_id |
GET | /inbox | - | - | YES | Show All Chat List |
📚 Class
Method | Endpoint | Params | q-Params | JWT Token | Function |
---|---|---|---|---|---|
POST | /mentors/class | - | - | YES | Make a Class |
GET | /mentors/{mentor_id}/class | mentor_id | - | YES | Get All Mentor Class by Mentor ID |
GET | /class/{class_id} | class_id | - | YES | Show Mentor Class Detail |
PUT | /class/{class_id} | class_id | - | YES | Update Mentor Class |
DELETE | /class/{class_id} | class_id | - | YES | Delete Mentor Class |
📆 Schedule
Method | Endpoint | Params | q-Params | JWT Token | Function |
---|---|---|---|---|---|
POST | /mentors/schedules | - | - | YES | Make a Class Schedule |
GET | /mentors/{mentor_id}/schedules | mentor_id | - | YES | Get All Mentor Schedule by Mentor ID |
POST | /schedules/{schedule_id} | schedule_id | - | YES | Check Schedule Availability |
DELETE | /schedules/{schedule_id} | schedule_id | - | YES | Delete Mentor Class Schedule |
💵 Transaction
Method | Endpoint | Params | q-Params | JWT Token | Function |
---|---|---|---|---|---|
POST | /transactions | - | - | YES | Make a Transaction |
GET | /mentors/transactions | - | - | YES | Get All Mentor Transaction |
GET | /students/transactions | - | - | YES | Get All Student Transaction |
- Clone it
$ git clone https://github.com/group3-musiclab/MusicLab-BE
- Go to directory
$ cd MusicLab-BE
- Run the project
$ go run .
- Voila! 🪄