This is the official website for our lab, built with Next.js and deployed on GitHub Pages.
The website includes:
- Research Overview
- Current Projects
- Team Members
- News and Updates
- Quick Links (Software & Publications)
- Contact Information
News items are stored in src/data/news.ts
. Add new items in this format:
{
date: "Month DD, YYYY",
title: "Your News Title",
content: "Your news content",
links: [{
text: "Link Text",
url: "URL"
}]
}
Team information is stored in src/data/team.ts
. Update members in this format:
{
name: "Member Name",
title: "Member Title",
link: "Profile URL"
}
- Install brew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- After installation, follow the "Next steps" instructions shown in terminal to add Homebrew to your PATH. It usually involves running something like:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
source ~/.zshrc
- Verify installation:
brew --version
- Node.js (v18 or higher)
- Mac:
brew install node
- Mac:
- npm (comes with Node.js)
- Mac: Automatically installed with node
- Git
- Mac:
brew install git
- Mac:
- Clone the repository:
git clone [email protected]:Shakeri-Lab/shakeri-lab.github.io.git
cd shakeri-lab.github.io
- Install dependencies:
# Remove existing dependencies (if any)
rm -rf node_modules
rm package-lock.json
# Install fresh dependencies
npm install --legacy-peer-deps
- Run the development server:
npm run dev
The site will be available at http://localhost:3000
- Generate SSH key:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
- Copy the public key:
cat ~/.ssh/id_rsa.pub
-
Add this key to GitHub:
- Go to GitHub → Settings → SSH and GPG keys
- Click "New SSH key"
- Paste your key and save
-
Configure Git:
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
Before making any changes, always pull the latest version:
git pull origin main
- Make your changes to the website
- Test locally using:
npm run dev
- Stage your changes:
git add .
- Commit your changes:
git commit -m "Description of your changes"
- Push to GitHub:
git push -u origin main
The site will automatically deploy through GitHub Actions. You can monitor the deployment status in the "Actions" tab of the repository.
If you encounter dependency conflicts, try:
rm -rf node_modules
rm package-lock.json
npm install --legacy-peer-deps
- Check the GitHub Actions tab for build errors
- Ensure all dependencies are properly installed
- Verify that the content in next.config.js is correct
- Make sure your SSH key is properly set up for GitHub
lab-website/
├── src/
│ ├── components/ # Reusable React components
│ ├── pages/ # Next.js pages
│ ├── data/ # Data files (news, team info)
│ └── types/ # TypeScript type definitions
├── public/ # Static assets (images, etc.)
└── ...
For questions or issues, please contact the lab directly or open an issue on GitHub.
Key configuration files:
next.config.ts
- Next.js configurationtailwind.config.js
- Tailwind CSS styling.github/workflows/deploy.yml
- Deployment configuration
- Keep commits focused and descriptive
- Test all changes locally before pushing
- Follow the existing code style and formatting
- Add comments for complex logic
- Update README when adding new features
- Open
src/data/news.ts
- Add your news entry at the top of the array
- Follow the existing format
- Test locally
- Commit and push
- Open
src/data/team.ts
- Modify the relevant section (PI, currentMembers, or alumni)
- Test locally
- Commit and push