{"id":15048593,"url":"https://github.com/labioquim/visualdynamics","last_synced_at":"2026-05-31T20:01:00.171Z","repository":{"id":43047433,"uuid":"226394842","full_name":"LABIOQUIM/visualdynamics","owner":"LABIOQUIM","description":"A Web Platform for molecular dynamics automation","archived":false,"fork":false,"pushed_at":"2026-05-31T16:16:01.000Z","size":165553,"stargazers_count":38,"open_issues_count":0,"forks_count":8,"subscribers_count":1,"default_branch":"next","last_synced_at":"2026-05-31T18:12:24.920Z","etag":null,"topics":["grace","gromacs","md","molecular-dynamics","molecular-dynamics-automation","molecular-dynamics-simulation"],"latest_commit_sha":null,"homepage":"https://visualdynamics.fiocruz.br","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LABIOQUIM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-12-06T19:22:45.000Z","updated_at":"2026-05-31T16:16:03.000Z","dependencies_parsed_at":"2024-03-27T00:32:24.404Z","dependency_job_id":"7afb23b3-e7b7-48f3-a851-d8390ec4116b","html_url":"https://github.com/LABIOQUIM/visualdynamics","commit_stats":null,"previous_names":[],"tags_count":85,"template":false,"template_full_name":null,"purl":"pkg:github/LABIOQUIM/visualdynamics","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LABIOQUIM%2Fvisualdynamics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LABIOQUIM%2Fvisualdynamics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LABIOQUIM%2Fvisualdynamics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LABIOQUIM%2Fvisualdynamics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LABIOQUIM","download_url":"https://codeload.github.com/LABIOQUIM/visualdynamics/tar.gz/refs/heads/next","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LABIOQUIM%2Fvisualdynamics/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33746513,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["grace","gromacs","md","molecular-dynamics","molecular-dynamics-automation","molecular-dynamics-simulation"],"created_at":"2024-09-24T21:14:18.898Z","updated_at":"2026-05-31T20:01:00.147Z","avatar_url":"https://github.com/LABIOQUIM.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VisualDynamics\n\nVisualDynamics is a WEB tool developed to automate biological simulations performed in Gromacs using a graphical interface to make molecular dynamics simulation a more user-friendly task.\n\nThe repository is a monorepo containing the backend API and the frontend web client. It's organized with Yarn workspaces and aims to provide a full-stack developer experience using:\n\n- `apps/api` — NestJS backend (GraphQL/REST, Prisma, BullMQ).\n- `apps/web` — Preact + Vite frontend (Mantine, TanStack).\n\nThis README explains the project layout, how to set up your environment, run each app in development, and build for production.\n\n---\n\n## Requirements\n\nBefore you begin, make sure you have:\n\n- Node.js (LTS recommended — e.g. 24.x)\n- Yarn (v4.x) — the repository uses Yarn workspaces\n- Git\n- Docker \u0026 Docker Compose\n- PostgreSQL and Redis (PostgreSQL must be run locally as we`ve found some problems running it in containers)\n- GROMACS built and installed on host machine (usually located at `/usr/local/gromacs`).\n\nNote: The repo uses workspace packages under `apps/*`. Install dependencies from the repo root.\n\n---\n\n## Quick start (development)\n\n1. Clone the repository and install dependencies\n   - From the project root:\n     `yarn install`\n\n2. Set up environment variables\n   - Create and edit `apps/api/.env` (see [Environment configuration](#environment-configuration) below).\n\n3. Start services\n   - Start the services in development mode with Docker:\n     `docker compose up -d --build`\n\nOpen the web client (Vite) at `http://localhost:3000` and the API (NestJS) at `http://localhost:3001` for REST endpoint.\n\n---\n\n## Environment configuration\n\nThe API expects environment variables to configure the database, Redis, and other secrets. Place them in `apps/api/.env` (do not commit secrets to git).\n\nExample `.env`:\n\n```\n# PostgreSQL (Prisma)\nDATABASE_URL=\"postgresql://db_user:db_pass@localhost:5432/visualdynamics?schema=public\"\n\n# Redis (BullMQ)\nREDIS_URL=\"redis://localhost:6379\"\n\n# App-specific\nPORT=3000\nNODE_ENV=development\nJWT_SECRET=your_jwt_secret_here\n```\n\nAdjust values for your local setup or Docker Compose stack.\n\n---\n\n## Database and migrations\n\nThe backend uses Prisma for database access and migrations.\n\nFrom the `apps/api` directory, common commands:\n\n- Generate Prisma client\n  `cd apps/api \u0026\u0026 npx prisma generate`\n\n- Create a migration (development)\n  `cd apps/api \u0026\u0026 npx prisma migrate dev --name init`\n\n- Apply migrations (production)\n  `cd apps/api \u0026\u0026 npx prisma migrate deploy`\n\n- Open Prisma Studio (inspect DB)\n  `cd apps/api \u0026\u0026 npx prisma studio`\n\n---\n\n## Going for production\n\nThe repository contains `compose.prod.yml` at the repo root to orchestrate services (Redis, api, web).\n\n- Production compose:\n  `docker compose -f compose.prod.yml up --build -d`\n\nTip: If you change migrations, re-build or run migration commands inside the `api` container as needed.\n\n---\n\n## Troubleshooting\n\n- Node / Yarn issues:\n  - Ensure the proper Node version is used (use a version manager if needed).\n  - If you get workspace or plugin resolution errors, run `yarn install` from the repo root again.\n\n- Prisma / DB:\n- - Commonly, host running services are reachable through the IP `172.17.0.1` in Docker containers, so this will probably need to be your `DB_HOST`.\n  - Confirm the other `DB_` variables are correct and the DB is reachable.\n  - Run `npx prisma generate` after pulling changes that modify the Prisma schema.\n\n- Docker:\n  - If ports are in use, stop the conflicting services or change the compose ports.\n  - Use `docker compose down -v` to remove volumes and start fresh (data loss warning).\n\nIf you run into an issue not covered here, open an issue in the repository describing the steps to reproduce.\n\n---\n\n## Contributing\n\n- Follow the repository's commit conventions and linting rules. The repo includes `commitlint` and ESLint configuration.\n- Create feature branches from `main` (or your project's default).\n- Run linters and formatters before committing:\n  - `yarn workspace api run lint`\n  - `yarn workspace web run build` (to ensure front-end compiles)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flabioquim%2Fvisualdynamics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flabioquim%2Fvisualdynamics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flabioquim%2Fvisualdynamics/lists"}