A comprehensive web application for the Advanced Research Industrial IoT (ARIIOT) Lab at Christ University. This project is built with Next.js 14, TypeScript, Tailwind CSS, and MongoDB, providing a modern and responsive platform for showcasing research activities, faculty information, and collaborative projects.
- Modern UI/UX: Built with React 18, TypeScript, and Tailwind CSS
- Responsive Design: Mobile-first approach with responsive layouts
- Database Integration: MongoDB integration for dynamic content management
- Component Library: Custom UI components built with Radix UI
- Dark Mode Support: Theme switching capabilities
- Form Handling: Advanced form management with React Hook Form
- Animation: Smooth animations and transitions
- Framework: Next.js 14.2.16
- Language: TypeScript 5
- Styling: Tailwind CSS 3.4.17
- UI Components: Radix UI, Custom components
- State Management: React Hooks
- Form Handling: React Hook Form with Zod validation
- Icons: Lucide React
- Animations: Tailwind CSS animations
- Database: MongoDB Atlas
- ORM: Native MongoDB driver
- API: Next.js API Routes
- Package Manager: npm
- Linting: ESLint
- Type Checking: TypeScript
- Build Tool: Next.js built-in bundler
christ-university-iot/
βββ app/ # Next.js App Router directory
β βββ api/ # API routes
β β βββ director/ # Director information API
β β β βββ director.json # Director data
β β β βββ route.js # GET endpoint for director
β β βββ faculties/ # Faculty information API
β β βββ faculties.json # Faculty data
β β βββ route.js # GET endpoint for faculties
β βββ about/ # About page
β βββ collaboration/ # Collaboration projects page
β βββ consultation/ # Consultation services page
β βββ faculty/ # Faculty information page
β βββ fetched/ # Data fetching demonstration page
β βββ home/ # Home page (alternative route)
β βββ student/ # Student information page
β βββ globals.css # Global styles
β βββ layout.tsx # Root layout component
β βββ page.tsx # Home page component
βββ components/ # Reusable React components
β βββ ui/ # UI component library
β βββ Footer.tsx # Footer component
β βββ Header.tsx # Header component
βββ hooks/ # Custom React hooks
βββ lib/ # Utility libraries
β βββ dbConnect.js # MongoDB connection utility
β βββ utils.ts # General utilities
βββ public/ # Static assets
βββ styles/ # Additional stylesheets
βββ .env # Environment variables
βββ next.config.mjs # Next.js configuration
βββ tailwind.config.js # Tailwind CSS configuration
βββ tsconfig.json # TypeScript configuration
| Route | Description | Features |
|---|---|---|
/ |
Home Page | - Research highlights - Laboratory showcase - Interactive hero section - Progress indicators - Tabbed content |
/about |
About Page | - University information - Lab overview - Mission and vision - Contact details |
/faculty |
Faculty Page | - Faculty profiles - Research interests - Publications - Contact information |
/collaboration |
Collaboration Page | - Industry partnerships - Research projects - Collaboration opportunities - Success stories |
/consultation |
Consultation Page | - Consultation services - Contact form - Service offerings - Booking system |
/student |
Student Page | - Class information - Student resources - Alumni network - External links to spreadsheets |
/fetched |
Data Demo Page | - Faculty data fetching - Dynamic content display - Database integration demo |
| Endpoint | Method | Description | Response |
|---|---|---|---|
/api/director |
GET | Fetches director information from MongoDB | JSON object with director details |
/api/faculties |
GET | Fetches all faculty members from MongoDB | JSON array of faculty objects |
interface Faculty {
id: number;
name: string;
title: string;
cabin: string;
email: string;
image: string;
education: string[];
research: string[];
publications: string[];
}- Header: Navigation with responsive mobile menu
- Footer: Contact information and social links
- Cards: Research project showcases
- Tabs: Organized content sections
- Progress: Research progress indicators
- Avatars: Faculty profile images
- Badges: Technology and skill tags
- Buttons: Various interactive elements
- Forms: Contact and consultation forms
- Colors: Custom color palette with university branding
- Typography: Inter font family
- Spacing: Consistent spacing scale
- Shadows: Subtle shadow system
- Borders: Rounded corners and borders
- Animations: Smooth transitions and hover effects
-
Director Collection
- Stores director profile information
- Accessed via
/api/director
-
Faculties Collection
- Stores all faculty member profiles
- Includes education, research, and publication data
- Accessed via
/api/faculties
- Uses MongoDB Atlas cloud database
- Connection managed through
lib/dbConnect.js - Environment variable
MONGO_URIfor secure connection
- Node.js 18+
- npm or yarn
- MongoDB Atlas account
-
Clone the repository
git clone https://github.com/fennymary/christ-university-iot.git cd christ-university-iot -
Install dependencies
npm install
-
Set up environment variables Create a
.env.localfile in the root directory:MONGO_URI=your_mongodb_connection_string -
Run the development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
npm run build
npm startThe application is fully responsive with breakpoints for:
- Mobile: < 768px
- Tablet: 768px - 1024px
- Desktop: > 1024px
Features:
- Mobile-first design approach
- Responsive navigation menu
- Adaptive layouts
- Touch-friendly interactions
- Optimized images
Next.js configuration for build optimization and deployment settings.
Tailwind CSS configuration with custom theme, colors, and animations.
TypeScript configuration for strict type checking and path mapping.
Shadcn/ui components configuration.
- Connect your GitHub repository to Vercel
- Add environment variables in Vercel dashboard
- Deploy automatically on push to main branch
- Netlify: Configure build command as
npm run build - Railway: Add MongoDB connection string to environment
- Heroku: Set up Node.js buildpack and environment variables
| Variable | Description | Required |
|---|---|---|
MONGO_URI |
MongoDB Atlas connection string | Yes |
NEXTAUTH_SECRET |
Authentication secret (if auth added) | No |
NEXTAUTH_URL |
Application URL (if auth added) | No |
- Hero Section: Interactive showcase with animations
- Research Tabs: Organized research areas and projects
- Progress Tracking: Visual progress indicators for ongoing research
- Quick Navigation: Easy access to all sections
- Dynamic Profiles: Faculty information loaded from database
- Research Showcase: Individual research interests and publications
- Contact Integration: Direct email and location information
- Responsive Cards: Adaptive layout for different screen sizes
- Project Gallery: Visual showcase of collaboration projects
- Partner Network: Industry and academic partnerships
- Success Stories: Highlighted achievements and outcomes
- Contact Forms: Easy partnership initiation
- Class Management: Links to external class spreadsheets
- Alumni Network: Connection to graduated students
- Resource Access: Quick links to important documents
- Information Hub: Centralized student information
- Client Request: User navigates to a page
- Server Rendering: Next.js renders the page server-side
- Database Query: API routes fetch data from MongoDB
- Component Rendering: React components display the data
- User Interaction: Interactive elements update the UI
- Image Optimization: Next.js automatic image optimization
- Code Splitting: Automatic code splitting for faster loads
- SSR/SSG: Server-side rendering and static generation
- Lazy Loading: Components loaded on demand
- Minification: Production builds are minified and optimized
- Fork the repository
- Create a 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
This project is licensed under the MIT License - see the LICENSE file for details.
Christ University IoT Lab
- Website: IoT Lab Website
- Email: contact@christuniversity.in
- Location: Christ University, Bangalore, India
- Christ University for providing the research platform
- ARIIOT Lab team for their contributions
- Open source community for the amazing tools and libraries
- Faculty and students for their continuous support
Built with β€οΈ by the Christ University IoT Lab Team