Implements Better README
This commit is contained in:
185
README.md
Normal file
185
README.md
Normal file
@@ -0,0 +1,185 @@
|
|||||||
|
<div align="center">
|
||||||
|
<a href="https://github.com/HideyoshiNakazone/hideyoshi.com">
|
||||||
|
<img src="https://drive.google.com/uc?export=view&id=1ka1kTMcloX_wjAlKLET9VoaRTyRuGmxQ" width="100" height="100" allow="autoplay"\>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
# backend-hideyoshi.com
|
||||||
|
|
||||||
|
Made using Spring and Java17, this project was made as the backend of the [hideyoshi.com project](https://github.com/HideyoshiNakazone/hideyoshi.com), as so it is mainly responsible for user authentication and user sessions.
|
||||||
|
|
||||||
|
All code in this repo is distributed freely by the GPLv3 License.
|
||||||
|
## Environment Variables
|
||||||
|
|
||||||
|
For the execution of this project the following environment variables must be set:
|
||||||
|
|
||||||
|
`FRONTEND_PATH`: for allowed origins
|
||||||
|
|
||||||
|
`TOKEN_SECRET`
|
||||||
|
|
||||||
|
`ACCESS_TOKEN_DURATION`
|
||||||
|
|
||||||
|
`REFRESH_TOKEN_DURATION`
|
||||||
|
|
||||||
|
- Default User Configuration:
|
||||||
|
|
||||||
|
`DEFAULT_USER_FULLNAME`
|
||||||
|
|
||||||
|
`DEFAULT_USER_EMAIL`
|
||||||
|
|
||||||
|
`DEFAULT_USER_USERNAME`
|
||||||
|
|
||||||
|
`DEFAULT_USER_PASSWORD`
|
||||||
|
|
||||||
|
- Storage Service MicroService:
|
||||||
|
|
||||||
|
`STORAGE_SERVICE_PATH`
|
||||||
|
|
||||||
|
- OAuth2 Configuration:
|
||||||
|
|
||||||
|
- Google:
|
||||||
|
|
||||||
|
`GOOGLE_CLIENT_ID`
|
||||||
|
|
||||||
|
`GOOGLE_CLIENT_SECRET`
|
||||||
|
|
||||||
|
`GOOGLE_REDIRECT_URL`
|
||||||
|
|
||||||
|
- Github:
|
||||||
|
|
||||||
|
`GITHUB_CLIENT_ID`
|
||||||
|
|
||||||
|
`GITHUB_CLIENT_SECRET`
|
||||||
|
|
||||||
|
`GITHUB_REDIRECT_URL`
|
||||||
|
|
||||||
|
- Database:
|
||||||
|
|
||||||
|
`DATABASE_URL`
|
||||||
|
|
||||||
|
`DATABASE_USERNAME`
|
||||||
|
|
||||||
|
`DATABASE_PASSWORD`
|
||||||
|
|
||||||
|
- Redis:
|
||||||
|
|
||||||
|
`REDIS_URL`
|
||||||
|
|
||||||
|
`REDIS_PORT`
|
||||||
|
|
||||||
|
`REDIS_PASSWORD`
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
Building project:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./mvnw -Dmaven.test.skip -f pom.xml clean package
|
||||||
|
```
|
||||||
|
|
||||||
|
Executing project:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
java -jar target/backend-*.jar
|
||||||
|
```
|
||||||
|
## API Reference
|
||||||
|
|
||||||
|
#### Get all users - ADMIN Permission Required
|
||||||
|
|
||||||
|
```http
|
||||||
|
GET /user
|
||||||
|
```
|
||||||
|
|
||||||
|
#### User Signup - Open Endpoint
|
||||||
|
|
||||||
|
```http
|
||||||
|
POST /user/signup
|
||||||
|
```
|
||||||
|
|
||||||
|
| Parameter | Type | Description |
|
||||||
|
| :-------- | :------- | :------------------------- |
|
||||||
|
| `name` | `string` | **Required**. Fullname |
|
||||||
|
| `email` | `string` | **Required**. Email |
|
||||||
|
| `username` | `string` | **Required**. Username |
|
||||||
|
| `password` | `string` | **Required**. Password |
|
||||||
|
|
||||||
|
#### Login - Open Endpoint - x-www-form-urlencoded
|
||||||
|
|
||||||
|
```http
|
||||||
|
POST /user/login
|
||||||
|
```
|
||||||
|
|
||||||
|
| Parameter | Type | Description |
|
||||||
|
| :-------- | :------- | :-------------------------|
|
||||||
|
| `username` | `string` | **Required**. |
|
||||||
|
| `password` | `string` | **Required**. |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#### Refresh Session - Open Endpoint
|
||||||
|
|
||||||
|
```http
|
||||||
|
POST /user/login/refresh
|
||||||
|
```
|
||||||
|
|
||||||
|
| Parameter | Type | Description |
|
||||||
|
| :-------- | :------- | :-------------------------|
|
||||||
|
| `refreshToken` | `string` | **Required**. |
|
||||||
|
|
||||||
|
#### Delete Own User - User Permission Required
|
||||||
|
|
||||||
|
```http
|
||||||
|
DELETE /user/delete
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Delete User by Id - ADMIN Permission Required
|
||||||
|
|
||||||
|
```http
|
||||||
|
DELETE /user/delete/:id
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Add Profile Picture to User - User Permission Required
|
||||||
|
|
||||||
|
```http
|
||||||
|
POST /user/profile-picture
|
||||||
|
```
|
||||||
|
|
||||||
|
| Parameter | Type | Description |
|
||||||
|
| :-------- | :------- | :-------------------------|
|
||||||
|
| `fileType` | `string` | **Required**. |
|
||||||
|
|
||||||
|
#### Delete Profile Picture - User Permission Required
|
||||||
|
|
||||||
|
```http
|
||||||
|
DELETE /user/profile-picture
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Process Profile Picture - User Permission Required
|
||||||
|
|
||||||
|
```http
|
||||||
|
POST /user/profile-picture/proccess
|
||||||
|
```
|
||||||
|
|
||||||
|
### User Response
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id": int,
|
||||||
|
"name": string,
|
||||||
|
"email": string,
|
||||||
|
"username": string,
|
||||||
|
"roles": string[],
|
||||||
|
"provider": string,
|
||||||
|
"accessToken": {
|
||||||
|
"token": string,
|
||||||
|
"expirationDate": datetime
|
||||||
|
},
|
||||||
|
"refreshToken": {
|
||||||
|
"token": string,
|
||||||
|
"expirationDate": datetime
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
## Authors
|
||||||
|
|
||||||
|
- [@HideyoshiNakazone](https://github.com/HideyoshiNakazone)
|
||||||
|
|
||||||
Reference in New Issue
Block a user