- Node.js
- Express.js
- App Engine
- Cloud Storage
- Tensorflow Lite
- Firestore
- @google-cloud/firestore - Version: ^7.11.1
- bcrypt - Version: ^5.1.1
- dotenv - Version: ^16.4.5
- express - Version: ^4.19.2
- firebase-admin - Version: ^12.1.1
- jsonwebtoken - Version: ^9.0.2
- multer - Version: ^1.4.5-lts.1
- nodemon - Version: ^3.1.0
- express-validator - Version: ^7.1.0
| Route | HTTP Method | Description | Auth |
|---|---|---|---|
| / | GET | First route | Required |
| /auth/register | POST | Register for new user | Not Required |
| /auth/login | POST | Log in for user | Not Required |
| /auth/logout | POST | Log out from account | Required |
| /auth/delete-account | DELETE | Delete user account | Required |
| /auth/reset-password | PUT | Reset account password | Required |
| /user/profile-details | GET | Get Profile Details | Required |
| /user/profile-details | PUT | Update Profile Details | Required |
| /user/profile-details/upload-photo | POST | Upload photo profile user | Required |
[https://snapcal-backend.et.r.appspot.com/)
- Method: POST
- Auth: NOT REQUIRED
- URL:
/auth/register - Request Body:
{ "name": "user name example", "email": "user@example.com", "password": "examplepassword" } - Response:
Status Code: 201
{ "status": "successful", "message": "User registered successfully", }
Status Code: 400
json { "status": "fail", "message": "Failed registered account/Account already created", }
Status Code: 500
json { "status": "error", "message": "Internal Server Error", }
- Method: POST
- Auth: NOT REQUIRED
- URL:
/auth/login - Request Body:
{ "email": "user@example.com", "password": "examplepassword" } - Response:
Status Code: 201
{ "status": "successful", "message": "User logged in successfully", "token": "example-token" }
Status Code: 400
json { "status": "fail", "message": "User failed to login", }
Status Code: 500
json { "status": "error", "message": "Internal Server Error", }
- Method: POST
- Auth: REQUIRED
- URL:
/auth/logout - Request Body:
Authentication: jwt-token - Response:
Status Code: 201
{ "status": "successful", "message": "User logout successfully", }
Status Code: 400
json { "status": "fail", "message": "Failed to logout", }
Status Code: 500
json { "status": "error", "message": "Internal Server Error", }
- Method: DELETE
- Auth: REQUIRED
- URL:
/auth/delete-account - Request Body:
Authentication: jwt-token - Response:
Status Code: 201
{ "status": "successful", "message": "Delete account successfully", }
Status Code: 400
json { "status": "fail", "message": "Failed to delete account", }
Status Code: 500
json { "status": "error", "message": "Internal Server Error", }
- Method: PUT
- Auth: REQUIRED
- URL:
/auth/reset-password - Request Body:
{ "password": "examplenewpassword" } - Response:
Status Code: 201
{ "status": "successful", "message": "Password reset successfully", }
Status Code: 400
json { "status": "fail", "message": "User failed to reset password", }
Status Code: 500
json { "status": "error", "message": "Internal Server Error", }
- Method: GET
- Auth: REQUIRED
- URL:
/user/profile-details - Request Body:
Authentication: jwt-token - Response:
Status Code: 201
{ "status": "successful" "message": "User get profile success" "userId": "exampleuserId" "data":{ "name": "example name" "email": "name@example.com" "gender": "pria" "beratBadan": 80 "tinggiBadan": 178 "usiaUser": 25 "gambar_profile": "url to profile image" "created_at": "xxxxxxx" "updated_at": "xxxxxxx" } }
Status Code: 400
json { "status": "fail", "message": "Failed to Get Profile", }
Status Code: 500
json { "status": "error", "message": "Internal Server Error", }
- Method: PUT
- Auth: REQUIRED
- URL:
/user/profile-details - Request Body:
{ "userId": "exampleuserId" "data":{ "name": "new example name" "email": "newname@example.com" "gender": "wanita" "beratBadan": 70 "tinggiBadan": 177 "usiaUser": 24 "gambar_profile": "url to new profile image" } } - Response:
Status Code: 201
{ "status": "successful" "message": "User update profile success" "userId": "exampleuserId" "data":{ "name": "new example name" "email": "newname@example.com" "gender": "wanita" "beratBadan": 70 "tinggiBadan": 177 "usiaUser": 24 "gambar_profile": "url to new profile image" "created_at": "xxxxxxx" "updated_at": "xxxxxxx" } }
Status Code: 400
json { "status": "fail", "message": "Failed to Update Profile", }
Status Code: 500
json { "status": "error", "message": "Internal Server Error", }

