Biokeeper
Citizen science biosample annotation tool
Install / Use
/learn @phlaster/BiokeeperREADME
<img src="assets/biokeeper_logo.png" width="3%"> Biokeeper
Citizen science biosample annotation tool
<table align='center'> <t0> <td><img src="assets/pic4.svg" height=100></td> <td><img src="assets/pic3.svg" height=100></td> <td><img src="assets/pic5.svg" height=100></td> <td><img src="assets/pic6.svg" height=100></td> <td><img src="assets/pic1.svg" height=100></td> <td><img src="assets/pic7.svg" height=100></td> <td><img src="assets/pic8.svg" height=100></td> </tr> </table>For users
Project structure
Repositories
The Biokeeper project file structure organized into several submodules for ease of development several logical parts of the project. Currently they are:
biokeeper # this repo, contains common docker-compose.yml to start all the server-side services
├── biokeeper-admin # admin web page
├── biokeeper-auth # users authentication service
├── biokeeper-backend # core server-side application logic
├── biokeeper-frontend # React Native cross-platform app
└── biokeeper-mq # RabbitMQ message broker
Microservice architecture
<img src="assets/biokeeper_architecture_diagram.svg" width=70% height=400>Start of work
First you need to clone this repo with all the submodues:
git clone --recurse-submodules git@github.com:phlaster/biokeeper.git
cd biokeeper
Then make sure you put relevant JWT public and private keys into jwt_keys/ directory and feel free to run:
docker-compose build
docker-compose up
For developers
Setting up GIT
To work on this or any child repo you need:
-
Set up your git credentials (where
USERNAMEis your user name):git config --global user.name "USERNAME" git config --global user.email USERNAME@users.noreply.github.com -
In GitHub web UI FORK CHOSEN REPO.
-
Clone the repo to your local machine:
git clone git@github.com:USERNAME/REPONAME.git cd REPONAME -
Explicitly set
upstream:git remote add upstream git@github.com:phlaster/REPONAME.git -
Check that everything is as expected:
git remote -vYou should see something like:
origin git@github.com:USERNAME/REPONAME.git (fetch) origin git@github.com:USERNAME/REPONAME.git (push) upstream git@github.com:phlaster/REPONAME.git (fetch) upstream git@github.com:phlaster/REPONAME.git (push) -
Fetch updates from
upstreamrepo:git fetch upstream -
Merge updates with the branch of your choice:
git checkout master git merge upstream/master # OR git checkout dev git merge upstream/dev -
Then after work is done push changes into your personal repo:
git push origin master # OR git push origin dev
Contributors
<table> <tr> <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0"> <a href=https://github.com/Mityamops> <img src=https://avatars.githubusercontent.com/u/125828608?v=4 width="100;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Mityamops/> <br /> <sub style="font-size:14px"><b>Mityamops</b></sub> </a> </td> <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0"> <a href=https://github.com/Momochka> <img src=https://avatars.githubusercontent.com/u/125281818?v=4 width="100;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Momochka/> <br /> <sub style="font-size:14px"><b>Momochka</b></sub> </a> </td> <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0"> <a href=https://github.com/kiriklzz> <img src=https://avatars.githubusercontent.com/u/112094641?v=4 width="100;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=kiriklzz/> <br /> <sub style="font-size:14px"><b>kiriklzz</b></sub> </a> </td> <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0"> <a href=https://github.com/Rimk4> <img src=https://avatars.githubusercontent.com/u/82030462?v=4 width="100;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Rimk4/> <br /> <sub style="font-size:14px"><b>Rimk4</b></sub> </a> </td> </tr> <tr> <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0"> <a href=https://github.com/catfield123> <img src=https://avatars.githubusercontent.com/u/38911774?v=4 width="100;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=catfield123/> <br /> <sub style="font-size:14px"><b>catfield123</b></sub> </a> </td> <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0"> <a href=https://github.com/d3biruwan> <img src=https://avatars.githubusercontent.com/u/91975865?v=4 width="100;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=d3biruwan/> <br /> <sub style="font-size:14px"><b>d3biruwan</b></sub> </a> </td> <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0"> <a href=https://github.com/Lo-Lap> <img src=https://avatars.githubusercontent.com/u/116972772?v=4 width="100;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=Lo-Lap/> <br /> <sub style="font-size:14px"><b>Lo-Lap</b></sub> </a> </td> <td align="center" style="word-wrap: break-word; width: 150.0; height: 150.0"> <a href=https://github.com/phlaster> <img src=https://avatars.githubusercontent.com/u/125278254?v=4 width="100;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px" alt=phlaster/> <br /> <sub style="font-size:14px"><b>phlaster</b></sub> </a> </td> </tr> </table>Related Skills
node-connect
351.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
110.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
351.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
351.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
