clipper/README.md

68 lines
1.2 KiB
Markdown

# Clipper
Clipper is a Youtube audio clipper developed using modern web technologies.
* Go
* protobuf, grpc-web
* Typescript
* React
It is currently in early development.
## Development
### Code generation
To generate protobuf code and GRPC stubs, first install [protoc](https://grpc.io/docs/protoc-installation/) and the GRPC dependencies:
```
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
```
Then generate the code with:
```
./protogen.sh
```
To generate the database access layer, first install [sqlc](https://sqlc.dev/).
```
cd backend/
sqlc generate
```
### Migrations
Database migrations require `golang-migrate`.
```
go install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@latest
```
Migrations then can be run with:
```
cd backend/
migrate -path sql/migrations -database $DATABASE_URL up
```
### Running the app
The backend requires configuration via environment variables - see `backend/.env.example`. All variables must be set unless they are marked as optional.
Then, the server can be started with:
```
cd backend/
go run cmd/clipper/main.go
```
The frontend can be launched on localhost:3000 with:
```
cd frontend/
yarn start
```