Experience the interactive website here: ADJ Lab Website
- Custom Animation Experience - Immersive full-page transitions from nautical/fantasy map to purple cancer cells using Framer Motion
- Responsive Design - Seamlessly adapts across desktop, tablet, and mobile devices
- Dynamic Backgrounds - Interactive elements that respond to user movement and scroll position
- Modern Stack - Built with Next.js, TypeScript, and TSX components for optimal performance and maintainability
- Content Management - Easily updateable content structure via centralized constants
- SEO Optimized - Structured for search engine discoverability
- Performance Focused - Fast load times and optimized assets
- Nautical to Cellular Transition - Smooth animation transforms the landing page from a fantasy map to microscopic cancer cell visualization
- Parallax Scrolling - Multi-layered backgrounds create depth and engagement
- Hover Interactions - Dynamic feedback on interactive elements enhances user experience
- Page Transitions - Seamless content changes maintain immersion throughout the site
βββ public/ # Static assets
β βββ media/ # Media assets
β βββ anand/ # Dr. Anand-related media
β βββ contact/
β βββ footer/
β βββ home/
β βββ LabMembers/
β βββ research/
β βββ favicon.ico
βββ src/ # Source code
β βββ app/ # App directory (Next.js App Router)
β β βββ providers/ # Context providers
β β βββ translations/ # Internationalization files
β βββ components/ # Reusable UI components
β βββ constants/ # Content and configuration constants
β βββ hooks/ # Custom React hooks
β βββ lib/ # Utility libraries
β βββ motion/ # Framer Motion animations
β βββ pages/ # Page components
β β βββ anand/ # Dr. Anand profile page
β β βββ contact/ # Contact page
β β βββ join-us/ # Recruitment page
β β βββ lab-events/ # Events page
β β βββ members/ # Team members page
β β βββ publications/ # Publications page
β β βββ research/ # Research page
β β βββ _app.tsx # Custom App component
β β βββ index.tsx # Homepage
β β βββ page.module.css # Homepage-specific styles
β βββ styles/ # Global styles
β β βββ globals.css # Global CSS
β βββ utils/ # Utility functions
β βββ app-configurations.ts
β βββ appState.ts
β βββ routeConfig.tsx
β βββ types.ts
βββ .gitignore # Git ignore file
βββ components.json # Component configurations
βββ eslint.config.mjs # ESLint configuration
βββ next-env.d.ts # Next.js TypeScript declarations
βββ next.config.ts # Next.js configuration
To set up the project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/kakarrxt/adj-lab-website.git cd adj-lab-website
-
Install dependencies:
npm install # or yarn install
-
Run the development server:
npm run dev # or yarn dev
The website will be available at
http://localhost:3000
.
The website is designed for easy content updates without modifying the core codebase. Edit the constants in src/constants/index.js
to update:
ResearchTopics
: Update current research focus areas with descriptions and imagesPublications
: Add or modify scientific publications with links to journals
primaryAffiliations
: Main institutional connectionsadditionalPositions
: Leadership roles and responsibilitiesawards
: Academic and research achievements
currentMembers
: Profiles and roles of active researchersalumniMembers
: Historical team members and their contributions
openPositions
: Current job openings and application processes
This project is automatically deployed via Vercel with continuous integration:
# Manual deployment if needed
vercel
- Next.js - React framework for server-side rendering and static site generation
- TypeScript - Type-safe JavaScript for improved development experience
- Framer Motion - Animation library for interactive UI components
- CSS Modules - Scoped styling for components
- Vercel - Hosting platform with CI/CD capabilities
The site is fully responsive with dedicated mobile layouts and optimized touch interactions:
- Touch-friendly navigation - Easy thumb-reach menus
- Optimized animations - Reduced motion for better performance
- Adaptive layouts - Content reorganization for smaller screens
Images not loading
- Ensure all image paths in
src/constants/index.js
are correct - Verify that images exist in the specified directories
Animation performance issues
- Reduce motion complexity in
src/motion/animations.ts
- Add the
reduced-motion
class to elements for users with motion preferences
Build errors
- Ensure Node.js and npm versions meet requirements
- Clear
.next
cache folder and node_modules:rm -rf .next node_modules && npm install
If you encounter issues not covered here, please:
- Check existing GitHub issues
- Open a new issue with detailed reproduction steps
- Contact the maintainer at [email protected]
This project is licensed under the MIT License.
Contributions to improve the ADJ Lab website are welcome:
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Follow the existing code style and TypeScript patterns
- Write meaningful commit messages following conventional commits format
- Update documentation for any new features or changes
π‘ Built exclusively for ADJ Lab, Cancer Science Institute of Singapore
Showcasing cutting-edge cancer research through innovative web design