Repository for StudyRoam website https://study-roam.vercel.app
Find a file
2025-12-01 10:19:19 +01:00
.husky Update pre-commit hook 2025-11-28 13:25:39 +01:00
app fix: filtersidebar filters 2025-12-01 10:19:19 +01:00
components/ui Huge design rehaul (#3) 2025-11-28 11:58:12 +01:00
ingest refactor: remove unnecessary files 2025-11-27 17:19:48 +01:00
lib Huge design rehaul (#3) 2025-11-28 11:58:12 +01:00
public Add files 2025-09-19 13:32:01 +02:00
types improve: performance boost for homepage filters 2025-11-27 17:06:53 +01:00
utils/supabase fix: move server from js to ts 2025-11-28 12:01:51 +01:00
.editorconfig Change indentation style 2025-09-25 07:56:39 +02:00
.gitignore Revert to 1299f45 to fix errors (linting and otherwise 2025-11-26 08:24:28 +01:00
all_tables_backup.dump Fix a bunch of bugs 2025-11-19 13:31:22 +01:00
biome.json fix: ts config 2025-11-27 10:31:06 +01:00
components.json Huge design rehaul (#3) 2025-11-28 11:58:12 +01:00
jsconfig.json Lint and fix all files 2025-11-25 15:01:58 +01:00
next.config.ts fix: ts config 2025-11-27 10:31:06 +01:00
package.json fix: move server from js to ts 2025-11-28 12:01:51 +01:00
pnpm-lock.yaml Huge design rehaul (#3) 2025-11-28 11:58:12 +01:00
postcss.config.mjs Lint and fix all files 2025-11-25 15:01:58 +01:00
README.md doc: update README.md 2025-11-27 09:33:46 +01:00
tsconfig.json First step in typescript migration 2025-11-27 10:02:01 +01:00

StudyRoam - Find Research Stays Worldwide

This is a complete rework of the original code while keeping the UI/UX similar.

Main Changes (WIP)

  • Move from SQLite to PostgreSQL hosted on Supabase
  • Get rid of Django backend
  • Switch to Next.js
  • Move hosting to Vercel (push to GitHub, auto-deploy to Vercel)
  • Keep most UI elements (TailwindCSS)
  • For efficiency experiment with SSR (Server Side Rendering) and SSG (Static Site Generation)
  • Database is on Supabase

Planned Changes

  • Introduce Prisma ORM for easier DB modelling
  • (optional) Introduce Apollo for GraphQL support
  • (optional) Reintroduce Typescript for type safety
  • (optional) Use ShadCDN for streamlined components
  • Add tests
  • Add analytics (e.g. Matomo, GA)
  • Add Google Search Console

Development

  1. Clone the repository
  2. Install dependencies with pnpm install
  3. Start development server with pnpm dev
  4. Open http://localhost:3000 in your browser
  5. For ingesting new programs: put them in ingest/extracted_programs, cd ingest, and uv run main.py

Pushing Code

Before pushing anything make sure that:

  1. Pull first, if necessary rebase
  2. Commit message is well formed (might move to conventional commits, checked by hooks later
  3. Linting runs succesfully and does not find any errors or warnings (if it does carefully try pnpm exec biome check --write --unsafe)
  4. Code is correctly formatted with no unused imports and following editorconfig
  5. If you introduce a temporary change or are unsure: Use a separate feature branch!

Branching

  • New Features: For now → okay on main, once live → use feature branch!
  • Temporary/ experimental feature: Use feature branch
  • Bugfix: For now → main, once live → hotfix branch
  • Merging into main: Squash + Rebase!
  • once more mature: might switch to gitflow