The Pervasive Sensing & Intelligent Assistive Systems (PerSIsst) Lab, founded by Dr. Pragma Kar, is a creative research hub dedicated to designing Human-Centric solutions that assist in smart living. The lab provides an innovation space to the team of researchers and engineers who are passionate about weaving novel techniques of integrating systems with sensing capabilities to solve critical challenges in people's lives.
Our work spans a variety of domains, from smart entertainment to education, always driven by the core belief that pervasive, intelligent digital assistantsβpowered by secure, ubiquitous physiological and behavioral sensingβcan make a significant impact.
- Node.js (v18 or higher)
- npm (v9 or higher)
- Git
- Access to IIIT Delhi VPN (for deployment)
# Clone the repository
git clone https://github.com/kintsugi-programmer/PerSIsst-Lab.git
# Navigate to latest version
cd PerSIsst-Lab/v5
# Install dependencies
npm install
npm update
# Start development server
npm run dev
# Open http://localhost:3000 in your browser
- Next.js: React-based framework for easy enhanced functionality
- Tailwind CSS: Utility-first framework for responsive design
- Next.js API Routes: Handle submissions, blogs, student info, publications, news for future
- Data Storage:
- Development: JSON files for fast development
- Production: MongoDB/PostgreSQL for storing blog posts, student data, publications, news as needed for future
- Apache 2: Serve the Next.js application
- Let's Encrypt: Provide HTTPS configuration
- NixOS: Manage configs and dependencies reproducibly
- Ubuntu Server: Host Apache 2 and SSL setup
root/
βββ v5/ # Latest version
β βββ public/ # Static assets
β β βββ bg/ # Background images
β β βββ team/ # Team member photos
β β βββ images/ # General images
β βββ src/
β β βββ app/ # All pages
β β βββ components/ # All reusable components
β β βββ lib/ # All utility functions
β βββ config files # Don't touch unless you know what you're doing
βββ Archive/ # Contains old versions
- Latest version (v5) is inside root dir
- Archive dir contains old versions
- Config files: Don't modify unless you understand their purpose
- Never delete code portions - comment them instead
- Experimental ("Exp") page is for review and future use
- Use Arrow Functions in
.tsx
files - Use
<> </>
oruse client
declaration for fragmentation error - Use
h-[55rem]
in code files for main body top alignment - Use
pb-10
for bottom padding - Use
@/
alias for imports (maps toapp/
directory) Example:import { InfiniteMovingCards } from '@/components/ui/infinite-moving-cards'
- Always Refer to Tailwind Docs and NextJS Docs
- Be aware of
.gitignore
contents - During git conflicts, always attempt to merge
- Never copy-paste - append or modify instead
- Map directories with Navbar links
- Follow layout patterns to reduce redundancy
- Debug Dark Mode when using libraries
- Document complex logic
- Never use CLI Install for UI/Libs/Etc. - use manual installation
- Maintain accessibility standards
- Implement responsive design
- Structure top alignment using
h-[55rem]
- Use
pb-10
for consistent bottom padding - Follow responsive design principles
- Ensure dark mode compatibility
- Test across different screen sizes
# Generate production build
npm run build
# Create static export
npm run export
# Exported site will be in 'out' directory
- Connect to IIIT Delhi VPN (if outside college network):
sudo openfortivpn vpn.iiitd.edu.in:10443 --username=username
# Example:
sudo openfortivpn vpn.iiitd.edu.in:10443 --username=siddhant22496
- Access the server:
ssh [email protected]@ip_address
# Example:
ssh [email protected]@192.168.3.70
- Clean up old files:
rm main.zip
rm -r PerSIsst-Lab-main/
cd ..
cd ..
cd var/www/html/
rm -r persisst # Remove deployed files
mkdir persisst # Create directory if needed
- Get and deploy new version:
wget https://github.com/kintsugi-programmer/PerSIsst-Lab/archive/refs/heads/main.zip
unzip main.zip
cd PerSIsst-Lab-main/v5
npm install
npm run build
npm run export
cp -r out/* /var/www/html/persisst/
- No external input collection through website
- All website export files must be static
- Limited sudo access
- Don't interfere with other users' files
- Don't share sensitive data and access
next.config.mjs
settings:{ output: 'export', // Enable static export trailingSlash: true, // Ensures trailing slash in URLs images: { unoptimized: true, // Avoid IIITD server optimization errors } }
- Be cautious with config files
- Never delete code - comment it out instead
- Review commented portions and Exp page for future use
- Follow arrow function syntax in TSX
- Use layout patterns to reduce redundancy
- Implement proper fragmentation handling
- Test dark mode compatibility
- Use proper directory mapping
- Follow import alias conventions
- Fragmentation errors: Use
<> </>
oruse client
declaration - Dark mode issues: Test thoroughly when using new libraries
- Directory mapping: Ensure proper alignment with Navbar
- UI Library conflicts: Use manual installation instead of CLI
- VPN connection issues: Verify credentials and network
- SSH access problems: Check username and IP
- File permission issues: Work within user permissions
- Original Webmaster & Builder (2024): Siddhant Bali
- Lab Director: Dr. Pragma Kar
- IT Support: IT-Team@IIITD
For technical issues or access requests:
- Lab Administration
- IT Support: IT-Team@IIITD
- Web Administration
- Main repository: PerSIsst-Lab
- Version: v5 (Latest)
- Archive: Contains previous versions for reference
Last Updated: October 2024 Maintained by: PerSIsst Lab, IIIT Delhi