Official website for Queen's University's BAM Laboratory, directed by Dr. Farhana H. Zulkernine.
This project is built using Next.js (React), Tailwind CSS for styling, and Shadcn UI components. It is statically generated and deployed to GitHub Pages.
To run the project locally, ensure you have Node.js (v18+) and PNPM installed.
pnpm installpnpm devOpen http://localhost:3000 with your browser to see the result.
To test the production build locally:
pnpm build
pnpm startThe website's content is not stored in a database. Instead, it uses structured TypeScript files to manage data easily without needing a backend.
All data files are located in src/lib/.
| File Path | Description |
|---|---|
src/lib/people.ts |
Manage Faculty, PhDs, Postdocs, and Alumni lists. |
src/lib/news.ts |
Add/Edit "Latest News" items and Upcoming Events. |
src/lib/research.ts |
Define Research Areas and Projects. |
src/lib/publications.ts |
Manage the list of publications (Conferences, Journals, etc.). |
src/lib/wiki.ts |
Manage links and resources for the Wiki page. |
src/lib/site-config.ts |
General site settings (Nav items, Footer info). |
- Open the relevant file in
src/lib/. - Add a new object to the array or modify existing fields.
- Save the file.
- If the dev server is running, the changes will reflect immediately.
Static assets are stored in the public/ directory.
- People: Store headshots in
public/imgs/people/. - Logos: Store sponsor or partner logos in
public/imgs/logos/. - General: Store other site images in
public/imgs/. - Reference:
/imgs/people/john_doe.jpg
- Store PDF files for publications here.
- Reference:
/papers/paper_name.pdf
- Store templates, handbooks, and other resources for the internal Wiki here.
- Reference:
/wiki/template_name.docx(Note: some legacy code might not need the leading slash, check specific usage)
Important: Assets in the public/ folder are served at the root URL.
This website uses GitHub Actions to automatically build and deploy to GitHub Pages.
You simply need to push your changes to the main branch.
- Commit your changes:
git add . git commit -m "Updated lab news and publications"
- Push to GitHub:
git push origin main
- The GitHub Action defined in
.github/workflows/nextjs.ymlwill trigger. - It will install dependencies, build the static site, and export it to the
./outfolder. - The content is then deployed to the
gh-pagesenvironment automatically.
Note: Ensure your repository Settings > Pages is set to deploy from GitHub Actions, not a branch.