Sokudo (speed from japanese) is an application that implements the principles of Agile software development, particularly project management, and is based on GitHub API using features offered by GitHub Apps.
For more details check client/package.json
and server/build.gradle
.
- Java 16+
- MongoDB instance (you can use docker container)
- NodeJS 16.6+
- NPM 7.20+
This section will show you how to install the frontend and backend parts to work together.
- Go to the
server
folder. - Run
./gradlew clean build
to download all required dependencies. - Open the properties file located at
src/main/resources/application.properties
. - Define the following variables:
server.port=8900 # Default port.
spring.data.mongodb.host=host.docker.internal # Default host.
spring.data.mongodb.port=27017 # Default port.
git.provider.client.id=<github-apps-client-id> # Generated from GitHub Apps.
git.provider.client.secret=<github-apps-client-secret> # Generated from GitHub Apps.
git.provider.access.token.issuer.url=https://github.com/login/oauth/access_token # Default URL.
git.provider.base.url=https://api.github.com # Default URL.
- Run the application from your IDE or with the following command:
./gradlew bootRun
.
- Go to the
client
folder. - Run
npm install
. - Create
.env
file. - Open the created file with your favorite editor.
- Define the following variables:
VITE_GH_AUTHORIZE_URL=https://github.com/login/oauth/authorize
VITE_GH_CLIENT_ID=<github-apps-client-id> # Generated from GitHub Apps.
VITE_API_BASE_URL=http://<server-host>:<server-port>/api
VITE_OAUTH_PROXY_URL=http://<server-host>:<server-port>/proxy/oauth
- Save the file.
- Run application with
npx vite --port=<port>
.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
- Re-write backend in Kotlin (include securing end-points by repo/user names)
- Add caching for external API calls.
- Pre-authorize API methods using a list of current user repositories.
- GH Token expired handler.
- Add code docs for API.
- Dark/white theme switch.
- Add project and task filtering.