EduHaven is a platform designed to assist students in their academic journey by providing a productivity-focused environment. With features like task management, note-making, real-time study rooms, and a social touch, it aims to simplify and enhance the learning process. The project is built with the MERN stack and incorporates real-time collaboration, analytics, and optional AI-powered tools.
- User Dashboard: Tracks tasks completed, study time, and productivity stats.
- Calendar & Events:
- User-Specific Events: Each user can only view and manage their own calendar events
- Event Management: Create, edit, and delete personal events with date/time
- Privacy & Security: Secure authentication ensures event privacy across users
- Enhanced Goals System:
- Data Persistence: All goals persist in database across sessions
- Smart Organization: Three collapsible sections (Daily Habits, Other Goals, Closed Goals)
- Repeat Functionality: Daily habits automatically recreate when completed
- Deadline Tracking: Visual indicators for time left, due today, or overdue
- To-Do List: Helps users organize and manage their tasks efficiently.
- Note-Making: Rich-text editor to create, edit, and organize notes.
- Real-Time Study Rooms:
- Chat and collaborate with friends.
- Video/audio controls using WebRTC.
- Chatbot: Provides productivity tips and answers academic questions.
- Friends and Social Features: Add friends, invite them to study rooms, and track their online/offline status.
- Analytics: Visualize progress with charts and insights.
- Gamification: Earn badges and track streaks to stay motivated.
- Frontend: React.js with CSS (or Tailwind CSS)
- Backend: Node.js with Express
- Database: MongoDB
- Real-Time Communication: Socket.IO, WebRTC
- Node.js
- MongoDB
- Git
-
After forking the repository, Clone the forked repository:
git clone https://github.com/<your-username>/EduHaven.git cd EduHaven
-
Install dependencies:
# Install backend dependencies cd Server npm install # Install frontend dependencies cd ../Client npm install
-
Set up environment variables:
-
for frontend:
- create a
.envfile in the/Clientdirectory, and copy all the contents from.env.example.
- create a
-
for backend:
- Create a
.envfile in the/Serverdirectory. - Follow the instructions provided in
.env.examplefile to create a new.envfile for backend.
- Create a
-
-
Start the development servers:
# Start backend server cd Server npm run dev # Start frontend server cd ../Client npm run dev
- You must get assigned to the issue so others know you're working on it. leave comment to get issue assigned.
- Code must be properly formatted. (use preetier)
- Commits should generally be minimal
- The body of the commit message should explain why and how the change was made.It should provide clear context for all changes mage that will help both a reviewer now, and a developer looking at your changes a year later, understand the motivation behind your decisions.
We welcome contributions to make EduHaven better for students everywhere! Here’s how you can contribute:
- Fork the repository.
- Create a new branch for your feature/bugfix:
git checkout -b feature-name
- Make your changes and test them thoroughly.
- For frontend changes, also run:
and verify there are no build errors.
npm run build
- Commit and push your changes:
git add . git commit -m "Add a brief description of your changes" git push origin feature-name
- Before pushing frontend changes, run
npm run buildlocally to ensure the project builds successfully. Catch & solve any potential deployment issues early, if any. - Create a Pull Request (PR) with a detailed explanation of your changes.
- Phase 1: Core features - User authentication, to-do list, note-making.
- Phase 2: Real-time study rooms, chatbot integration, and social features.
- Phase 3: Analytics, gamification, and AI-powered enhancements.
- Phase 4: Mobile app development and premium features.
This project is licensed under the MIT License - see the LICENSE file for details.
- Special thanks to contributors for their efforts in building EduHaven.
- Inspired by productivity tools and online collaborative platforms.
The backend is hosted on Render Free Tier and may go to sleep after short inactivity.
We have implemented a keep-alive solution using cron-job.org to ping the backend every 1 minute:
- URL: https://eduhaven-backend.onrender.com/
- Interval: Every 1 minute
- Purpose: Prevents backend cold starts for faster response times.
For full details, see KEEP_ALIVE.md.
For any further queries, feel free to reach out on our whatsApp group. Let’s make learning fun and productive!
