A StudoCu-inspired platform where students can upload, share, and discover academic materials including assignments, exams, notes, and study resources from universities worldwide.
- Browse & Download: Access thousands of documents from universities globally
- Upload & Share: Share your assignments, notes, and study materials
- Community Interaction: Comment, like, and rate documents
- University Profiles: Browse content by specific universities and courses
- Search & Filter: Find exactly what you need with advanced filtering
- Assignments & Homework
- Exams & Quizzes
- Lecture Notes
- Lab Reports
- Research Papers
- Presentations
- Thesis Documents
- Guest Access: Browse and view documents without signing up
- Member Benefits: Upload, comment, like, and bookmark content
- University Verification: Verified profiles for authentic academic content
- Points System: Earn points for contributing valuable content
- Frontend: Next.js 15, TypeScript, Tailwind CSS
- Backend: Convex (Database & Real-time)
- Authentication: Clerk
- File Storage: UploadThing
- UI Components: Radix UI + shadcn/ui
- Node.js 18+ and pnpm
- Convex account
- Clerk account
- UploadThing account
-
Clone the repository
git clone https://github.com/yourusername/zedsolve.git cd zedsolve -
Install dependencies
pnpm install
-
Set up environment variables
cp .env.example .env.local
Fill in your environment variables:
# Convex CONVEX_DEPLOYMENT=your-convex-deployment NEXT_PUBLIC_CONVEX_URL=https://your-convex-url # Clerk Authentication NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_... CLERK_SECRET_KEY=sk_test_... # UploadThing UPLOADTHING_SECRET=sk_live_... UPLOADTHING_APP_ID=your-app-id
-
Set up Convex
npx convex dev
-
Run the development server
pnpm dev
-
Open your browser Navigate to http://localhost:3000
├── app/ # Next.js app directory
│ ├── documents/ # Document browsing & detail pages
│ ├── universities/ # University pages
│ ├── upload/ # Document upload page
│ └── page.tsx # Homepage
├── components/ # Reusable UI components
│ ├── ui/ # shadcn/ui components
│ └── header.tsx # Main navigation
├── convex/ # Backend functions & schema
│ ├── schema.ts # Database schema
│ ├── documents.ts # Document-related functions
│ ├── users.ts # User management
│ └── comments.ts # Comments & interactions
├── hooks/ # Custom React hooks
└── lib/ # Utility functions
- Advanced search with filters by type, university, subject
- Featured documents and trending content
- University-specific document collections
- Drag & drop file upload with UploadThing
- Rich metadata for better discoverability
- Document preview and validation
- Privacy controls and permissions
- Commenting system with threading
- Like/dislike voting on documents and comments
- User profiles with contribution history
- Follow system for content creators
- University verification system
- Course and department organization
- Academic year and semester tracking
- Professor and grade information
The app uses Convex with the following main collections:
- users: Student profiles and authentication
- universities: Academic institutions
- courses: University courses and programs
- documents: Uploaded academic materials
- comments: Community discussions
- interactions: Likes, bookmarks, and views
- categories & tags: Content organization
- Fork the repository
- Create your 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
-
Deploy to Vercel
vercel
-
Set up environment variables in Vercel dashboard
-
Deploy Convex functions
npx convex deploy
docker build -t zedsolve .
docker run -p 3000:3000 zedsolveThis project is licensed under the MIT License - see the LICENSE file for details.
- 📧 Email: support@zedsolve.com
- 💬 Discord: Join our community
- 📖 Documentation: docs.zedsolve.com
- Inspired by StudoCu's academic sharing model
- Built with modern web technologies for optimal performance
- Designed for the global student community
Happy studying! 🎓📚