Skip to content

tanvipagare21/SmartCampus-VibeCoding

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Problem Statement 1: AI-Powered Smart Campus Tool

Domain: Vibe Coding ✨
Difficulty: Easy 🟢


🎯 Goal

To design and build an AI-powered tool that enhances the overall student experience by simplifying campus life, improving organization, or fostering community engagement.


📖 Description

University campuses are vibrant but often complex environments. Students juggle academic schedules, extracurricular activities, and social events. Finding relevant information, managing time effectively, and discovering new opportunities can be challenging.

This challenge asks you to build a smart tool that addresses one key aspect of student life. You will choose one of three project options, each designed to make the campus experience more efficient and engaging.


🚀 Project Options (Choose One)

To tackle the "Smart Campus" challenge, please choose one of the following three project options to build. You can use mock data for your chosen project.

Option A: AI Chatbot for Student Queries

  • Concept: Build an intelligent chatbot that acts as a 24/7 virtual guide for students.
  • Core Features:
    • Answer student questions about events (e.g., "What's happening this week?"), timetables (e.g., "Where is my next class?"), and facilities (e.g., "What time does the gym close?").
    • Implement Natural Language Understanding (NLU) to process conversational queries.
    • Design a simple and user-friendly chat interface.

Option C: Personalized Event Recommender

  • Concept: Develop a system that suggests campus events, workshops, and clubs to students based on their personal interests.
  • Core Features:
    • Allow users to create a profile and select their interests (e.g., "Coding," "Music," "Sports," "AI").
    • Match events from a campus database to the user's profile.
    • Display personalized event recommendations through a clean dashboard, email, or notification system.

✅ Implemented: Personalized Event Recommender (Full‑Stack)

Tech Stack

  • Backend: Node.js, Express, JSON file storage (mock DB), JWT, bcrypt, CORS
  • AI Logic: Content-based filtering via TF‑IDF and cosine similarity (using natural)
  • Frontend: React (TypeScript, CRA), Axios, React Router

Project Structure

.
├─ server.js
├─ package.json
├─ data/
│  ├─ users.json
│  ├─ events.json
│  └─ interests.json
├─ routes/
│  ├─ auth.js
│  ├─ events.js
│  └─ recommendations.js
├─ utils/
│  └─ recommendationEngine.js
└─ client/
   ├─ package.json
   └─ src/
      ├─ api.ts
      ├─ types.ts
      ├─ context/
      │  └─ AuthContext.tsx
      ├─ components/
      │  ├─ Navbar.tsx
      │  └─ EventCard.tsx
      └─ pages/
         ├─ LoginPage.tsx
         ├─ SignupPage.tsx
         ├─ ProfilePage.tsx
         └─ DashboardPage.tsx

Backend API

  • POST /api/auth/register – Register a user
  • POST /api/auth/login – Login and receive JWT
  • PUT /api/auth/profile – Update profile (interests, year, major)
  • GET /api/auth/profile/:userId – Get user profile
  • GET /api/events – List events (query: category, search, limit)
  • GET /api/events/:eventId – Get event by ID
  • GET /api/recommendations/user/:userId?algorithm=hybrid|content-based|collaborative|diverse|popular&limit=10 – Personalized recommendations
  • POST /api/recommendations/by-interests – Get recs by provided interest tags
  • GET /api/recommendations/explain/:userId/:eventId – Get explanation of a recommendation

AI Recommendation Logic

  • TF‑IDF is built from event title, description, category, and tags
  • User profile vector is created from interests
  • Cosine similarity ranks events; exact tag matches add a small bonus
  • Fallback to popular events, plus hybrid/diverse and a mocked collaborative variant

▶️ Getting Started

1) Backend

# from project root
npm install
npm run dev   # starts the Express server on http://localhost:5000

Health check: http://localhost:5000/api/health

2) Frontend

cd client
npm install
npm start   # starts React dev server on http://localhost:3000

The frontend expects the backend at http://localhost:5000/api. If you need to change it, set REACT_APP_API_BASE before npm start (e.g. in your shell).

3) Login quickly with mock data

  • Use email john.doe@university.edu and password password
  • Or sign up a new account, then select interests on the Profile page

✨ Features

  • Register/login with mock JSON storage
  • Select interests and update profile
  • Content-based AI recommendations with multiple algorithms
  • Simple, clean dashboard UI with event cards

🔁 Future Expansion Prompts

  • Notifications
    • Add a notifications service that surfaces top 3 weekly events per user
    • Options: in‑app toasts, email (e.g., nodemailer), or scheduled digests (cron)
  • Collaborative Filtering
    • Persist user interactions (views, favorites, RSVPs)
    • Compute user‑user/item‑item similarities using cosine/pearson
  • Calendar Integrations
    • Google Calendar: OAuth + create calendar events for RSVPs
    • University ERP: read course schedules to avoid conflicts
  • Personalization
    • Short/long‑term preference models; decay older interests
    • Re‑rank by time, capacity, and popularity signals

🧪 API Examples

# Fetch all events
curl http://localhost:5000/api/events

# Recommendations for a user (hybrid)
curl "http://localhost:5000/api/recommendations/user/user_001?algorithm=hybrid&limit=5"

# Recommendations by interests
curl -X POST http://localhost:5000/api/recommendations/by-interests \
  -H "Content-Type: application/json" \
  -d '{"interests":["ai","coding"],"limit":5}'

⚙️ Notes

  • This project uses JSON files for storage for simplicity. Replace with a real DB for production.
  • JWT secret is hardcoded for development. Use environment variables in production.
  • create-react-app is deprecated; it is used here for speed. You can migrate to Vite/Next.js later.

🛠️ Tech Stack

The tech stack can be chosen by the contributors themselves. You have complete freedom to use any languages, frameworks, or tools you are comfortable with. The main goal is to build a functional and creative solution, not to master a specific technology.


🏆 Evaluation Criteria

Submissions will be judged based on the following criteria:

  • Creativity & Innovation (30%)

    • Uniqueness of the design and overall idea.
  • Execution Quality (30%)

    • Aesthetics and usability (UI/UX) of the final product.
  • Technical Relevance (20%)

    • Relevance of the solution to the project's context and problem statement.
  • Documentation & Clarity (10%)

    • Proper explanations, comments, and clarity in the code and README.md file.
  • AI Usage Transparency (10%)

    • Declared use of AI assistance in the design or coding process.

Submissions

  • Push your final code to a public GitHub repository.
  • Include a clear README.md in your repository that explains how to set up and run your project.
  • Submit the link to your repository for evaluation.

Happy Hacking! 💻

About

Navigating campus life is often chaotic with information scattered everywhere. Your challenge is to build an AI-powered tool that simplifies the student experience by making it more organized and personalized. Choose one of the projects below to help create the smart campus of the future.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 100.0%