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- Run the development server:
npm run devThe 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 mainThe 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- 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
npm install # legacy flag no longer needed
Email • Address • Deep-Learning Course • Google Scholar • GitHub • Dark-mode toggle
The site uses Tailwind's dark class. Click the sun/moon icon to switch; preference is stored in localStorage.
public/dynamo-lab-logo.png (main logo for both themes)
- upload-pages-artifact@v2
- deploy-pages@v2