infiScroll is a sleek, scroll-based content recommendation app designed to deliver an endless stream of personalized posts β including Photos. With smart onboarding, dynamic themes, and an intuitive UI, it's built for users who crave simplicity without sacrificing discovery.
π Live Demo: Try it on Vercel
- π― Objective
- β¨ Key Features
- π§ Tech Stack
- π οΈ How to Run Locally
- π Folder Structure
- π§ͺ Challenges Faced
- π Analytics & Engagement Tracking
- π₯ Team
- π Project Submission
# π― Objective
To solve content fatigue by offering a recommendation-driven, clean, and infinite scroll experience tailored to individual interests β all in one beautiful UI.
# β¨ Key Features
- βΎοΈ Infinite Feed β Seamlessly loads more posts as you scroll.
- π Smart Recommendations β Posts based on selected interests (coming in final version).
- π§ Category Tabs β Filter content across:
Photos. - β€οΈ User Interaction β Like, Save, Skip, and View Later functionality.
- π± Onboarding & Preferences β Personalized category selection during login.
- π Theme Toggle β Switch between Light and Dark mode.
- πΆ Responsive Design β Optimized for both desktop and mobile.
## π§ Tech Stack
| LayerΒ Β Β Β Β | TechnologiesΒ Β Β Β Β Β Β |
|---|---|
| FrontendΒ Β Β Β | React.js, Tailwind CSSΒ Β |
| BackendΒ Β Β Β | Node.js, Express.jsΒ Β Β Β |
| DatabaseΒ Β Β Β | Firebase FirestoreΒ Β Β Β |
| AuthΒ Β Β Β Β Β | Firebase Google Sign-InΒ Β |
| DeploymentΒ Β Β | Vercel (Frontend), |
## π οΈ How to Run Locally
npm install
## π οΈ How to Run Locally
### 1. Install Dependencies
```bash
npm installAdd your Firebase config to a .env file:
VITE_API_KEY=your_api_key
VITE_AUTH_DOMAIN=your_auth_domain
VITE_PROJECT_ID=your_project_id
VITE_STORAGE_BUCKET=your_storage_bucket
VITE_MESSAGING_SENDER_ID=your_messaging_sender_id
VITE_APP_ID=your_app_idnpm start# π Folder Structure
infiScroll/
βββ public/
βββ src/
β βββ components/
β βββ pages/
β βββ assets/
β βββ hooks/
β βββ App.jsx
β βββ main.jsx
βββ .env
βββ package.json
βββ README.mdπ§ͺ Challenges Faced
- Integrating Firebase Auth with persistent state
- Conditional theme rendering across components
- Designing mobile-first responsive cards
- Managing scroll-based content rendering
- Syncing "Liked" & "Saved" states with Firebase
π₯ Team
| Name | Role |
|---|---|
| Aayush Bhaiya | Mentor |
| Suhani | Team Leader |
| Krisha | Developer |
| Rida | Developer |
| Shambhavi | Developer |
## π Analytics & Engagement Tracking
We use Firebase Analytics and custom event logging to better understand user behavior and continuously improve the platform.
| Event Name | Trigger Location | Description |
|---|---|---|
onboard_complete |
Onboarding Page | User completed initial setup |
content_view |
Explore Feed | User viewed a content card |
like_post |
Post Card | User liked a specific post |
save_post |
Post Card | User saved a post to favorites |
upload_content |
Upload Page | User uploaded their own media |
scroll_depth |
Explore Page | Measures how deep the user scrolls |
toggle_theme |
Settings Page | User toggled between Light/Dark mode |
- We use this data to:
- Prioritize popular categories (e.g., SPORTS, TECH)
- Monitor active user sessions per day
- Track how much content users actually scroll through
- Optimize which uploads get promoted first
# π Project Submissionπ All analytics are anonymized and comply with Firebase's data privacy standards.
Built with β€οΈ by Team SD_009 for IITI Summer of Code 2025