Repository for StudyRoam website
https://study-roam.vercel.app
| .husky | ||
| app | ||
| components/ui | ||
| ingest | ||
| lib | ||
| public | ||
| types | ||
| utils/supabase | ||
| .editorconfig | ||
| .gitignore | ||
| all_tables_backup.dump | ||
| biome.json | ||
| components.json | ||
| jsconfig.json | ||
| next.config.ts | ||
| package.json | ||
| pnpm-lock.yaml | ||
| postcss.config.mjs | ||
| README.md | ||
| tsconfig.json | ||
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
- Clone the repository
- Install dependencies with
pnpm install - Start development server with
pnpm dev - Open http://localhost:3000 in your browser
- For ingesting new programs: put them in
ingest/extracted_programs,cd ingest, anduv run main.py
Pushing Code
Before pushing anything make sure that:
- Pull first, if necessary rebase
- Commit message is well formed (might move to conventional commits, checked by hooks later
- Linting runs succesfully and does not find any errors or warnings (if it does carefully try
pnpm exec biome check --write --unsafe) - Code is correctly formatted with no unused imports and following editorconfig
- 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