Skip to content

BuddyGenAI Dev Docs

This is the first installment of me documenting how this project is structured and works so that other developers can work on it.

NOTE

I haven't actively worked with this codebase in a while, so I'm partially writing this to strengthen my own understanding of things.

Other Pages

Source Code / File Structure

This project has the following in terms of files and directories, starting at the root:

  • /.github/workflows/deploy.yml: Builds and deploys new versions of the web app to GitHub Pages.
  • /assets/: Static folder from which resources can be referenced with a URL such as /assets/logo.png.
  • /build/: Directory used for Electron-Builder files.
    • icon.{ico,png}: The icon to be shown for this application in the Electron version.
    • license.txt: Shown for the user to accept when installing the Electron version.
  • /docs/: The source for this docs site, made with Vitepress (to-do).
  • /electron/: Source for the Electron version's backend / main process.
    • background.ts: Entrypoint for the Main process.
    • dynamicRenderer.ts: Module which handles loading the web app in the Renderer window.
  • /licenses/: Directory containing LICENSE text files from the projects that we use.
  • /migrations/: SQL files used to construct a fresh SQLite database (for use with Electron version).
  • /public/
  • /scripts/
  • /src/: Source code for web app.
  • /app.vue: The Vue entrypoint for the app.
  • /build.js: Pain JS script to build Electron version.
  • /index.{html,ts}: HTML & JS (compiled) entrypoints for the web app.
  • /typed-router.d.ts: File defining the file-based routes, generated and managed by unplugin-vue-router during compilation, should be committed to the git repo.

Notes