Curv - The App Designed to "Curv" Social Media Addiction!
Inspiration
In today's ever growing digital age, social media platforms often lead to negative effects that can hurt all of us. Think depression, anxiety, and cyberbullying. FOMO (fear of missing out), general negativity, and the dreadful brain rot generated by many social media apps including short form video content. While big tech companies are harvesting personal data from their users, misinformation, clickbait, and dishonesty spread, setting a damaging precedent and changing the internet for the worse.
We wanted to create a platform that captures the engaging aspects of social media while eliminating its harmful elements. Curv is designed to keep you informed by keeping you ahead of the Curv and connected, without the downsides of traditional social media.
The Problem We Want to Solve
- 🕒 People spend excessive time on social media
- 😔 Social media contributes to depression and anxiety
- 🎯 Cyberbullying and toxic behavior online
- 📱 Addictive design patterns in current platform
What it Does
Curv provides a mindful approach to news consumption and community interaction:
- Clean, distraction-free interface
- Focus on quality content over engagement metrics
- Community-driven discussions without the toxicity
- AI-powered content curation for balanced perspectives
How we built it
Frontend
- Next.js with TailwindCSS and shadcn/ui components
- PlotDB - For SVG Theming
- Custom-made components for specific functions
Backend
- Python FastAPI - High-performance API server
- MongoDB Atlas - Cloud database for:
- User profiles and authentication
- Article storage and management
- Comment systems
- Rating and interaction tracking
- Content recommendations
AI/ML
- Google Gemini - Powering:
- Content summarization
- Comment analysis
- Topic classification
- Trend analyzer
Features
Authentication System
- Complete user authentication flow
- Secure password hashing with bcrypt
- Integration with MongoDB
MongoDB Integration
- Efficient document-based data storage
- Real-time data updates
- Collections for:
- User post pinning
- Comment system
- Rating systems
Modern UI/UX
- Responsive design
- Dark/light mode
- Animated backgrounds using PlotDB
- Smooth transitions and interactions
Challenges we ran into
- Integrating MongoDB with authentication and Bcrypt
- Connecting the frontend to the backend
- Finding workarounds for the Gemini API's rate limits
Accomplishments that we're proud of
- Completing this project using tools we were very unfamiliar with
- Such as Next.js, MongoDB, shadcn/ui, TailwindCSS, and more!
- Designing a modular and scalable architecture that allows for future expansion and new features
- Building an end-to-end product—from concept and design to deployment and presentation
What we learned
- This was our first time using Next.js for frontend development, which presented a steep learning curve compared to Angular.
- We improved our UI/UX skills through TailwindCSS and shadcn/ui, focusing on accessibility and design best practices
- Learned to work with FastAPI, enabling us to build a performant and lightweight backend architecture in Python
What's next for Curv
- Custom themes
- Further optimization
- Expanded features inspired by Hackabull's theme (Post-Apocalytic)
- Continued integration of unique functionalities and quality-of-life improvements
Getting Started
Clone the repository:
git clone https://github.com/samirjdev/curvapp.git cd curvInstall dependencies:
npm installSet up environment variables:
cp .env.example .env.local # Add your API keys and configurationStart the development server:
npm run devFor the Python backend:
cd backend pip install -r requirements.txt uvicorn main:app --reload
Environment Variables
Required environment variables:
MONGODB_URI=your_mongodb_uri
GEMINI_API_KEY=your_gemini_api_key
JWT_SECRET=your_jwt_secret
Log in or sign up for Devpost to join the conversation.