EduConnect
📚 Full-Stack Mobile Learning Platform (Flutter + Node.js + MongoDB)

Project Overview
EduConnect is a comprehensive mobile application 📱 designed to create an intuitive and efficient online learning environment. It showcases full-stack development capabilities, integrating a modern cross-platform mobile frontend with a scalable, secure backend infrastructure. 🔐
🛠️ Technologies Used:
- Frontend: Flutter (Dart)
- Backend: Node.js, Express.js
- Database: MongoDB Atlas ☁️
- ODM: Mongoose
- Authentication: JWT 🔑, bcryptjs
- Environment Management: dotenv
- HTTP Client: http package
- Local Storage: shared_preferences
- CORS Handling: cors middleware
🚀 Key Features & Technical Implementation:
🔐 Robust User Authentication & Authorization:
- Secure registration and login for "Student" and "Instructor" roles
- JWT-based token authentication with session management
- Password hashing with bcryptjs
- Protected routes with authentication middleware
📘 Dynamic Course Management:
- Instructors can manage course details (CRUD)
- Students browse/search courses and view details
- RESTful API endpoints:
/api/courses
📝 Streamlined Course Enrollment:
- Students enroll and view enrolled courses
- Backend API endpoint:
/api/enrollments
📤 Assignment Submission & Tracking:
- Submit text-based assignments
- Track submissions linked to courses
🧠 Interactive Quizzing Module:
- Instructors create quizzes with correct answers
- Students take quizzes with instant scoring
- Endpoints:
/api/quizzes
,/api/quiz-results
🏗️ Architectural Highlights:
- RESTful API design using Express.js
- Clean separation: routes, controllers, models, middleware
- Flutter structured with screens, widgets, api, models, utils
- Asynchronous handling with
Future
andasync/await
- Cloud-based MongoDB Atlas for scalable storage
- Environment variables managed with
dotenv
🐛 Challenges & Solutions:
- ❗ Null check operator issues in Dart fixed with null-aware operators
- 🔗 URI Malformation fixed via URL-encoding credentials
- 📁 .env errors resolved by ensuring correct file loading order
- 💥 JSON parsing errors handled with try-catch and improved logging