Our Journey Building LabTutee: A Tutor-Student Collaboration Platform
Welcome to our blog! Over the past few months, we’ve been working on LabTutee, a web-based platform designed to enhance communication between tutors and students during lab sessions. This blog documents our software engineering process, major design decisions, and the challenges we faced along the way.
1. The Idea Behind LabTutee
Lab sessions are an essential part of learning, but they often come with challenges:
- Students struggle to get timely help from tutors.
- Tutors find it difficult to manage multiple requests simultaneously.
- There’s no easy way to track session progress or analyze performance.
We wanted to solve these problems by creating a platform that:
- Allows students to request help with a single click.
- Enables tutors to manage requests and view session analytics in real-time.
- Provides a seamless experience for both tutors and students.
2. Requirement Analysis
Understanding the Problem
Before writing a single line of code, we spent time understanding the needs of our users:
- Tutors: Needed a way to create sessions, manage student requests, and track session performance.
- Students: Wanted an easy way to request help and see their position in the queue.
Defining Features
Based on our analysis, we identified the following key features:
- Session Management: Tutors can create, join, and end sessions.
- Student Requests: Students can raise their hands to request help.
- Real-Time Updates: Both tutors and students receive real-time updates.
- Analytics: Tutors can view session analytics, including resolution times.
3. Frontend and Backend Development
Choosing the Tech Stack
We decided to use:
- Django: A Python-based web framework for backend development.
- PostgreSQL: A robust relational database for data storage.
- HTML/CSS/JavaScript: For building the frontend.
- Bootstrap: For responsive and user-friendly design.
Frontend Development
The frontend was designed to be simple and intuitive. Key pages include:
- Homepage: Provides options to join as a student or tutor.
- Tutor Dashboard: Displays student requests, session analytics, and controls.
- Student Dashboard: Allows students to raise their hands and view their queue position.
Backend Development
The backend handles:
- Session Management: Creating, joining, and ending sessions.
- Request Handling: Managing student requests and resolving them.
- Analytics: Calculating and displaying session performance metrics.
4. Integration and Testing
Connecting Frontend and Backend
We used AJAX to enable real-time communication between the frontend and backend. For example:
- When a student raises their hand, an AJAX request is sent to the backend to create a new request.
- The tutor dashboard periodically fetches updates using AJAX to display new requests and analytics.
Testing
We conducted extensive testing to ensure the system worked as expected:
- Unit Testing: Tested individual components (e.g., session creation, request resolution).
- Integration Testing: Verified that the frontend and backend worked together seamlessly.
- User Testing: Asked tutors and students to use the system and provide feedback.
5. Challenges and Solutions
Challenge 1: Real-Time Updates
Problem: The system required manual page refreshes to update data.
Solution: We implemented AJAX polling to fetch updates every 3 seconds.
Challenge 2: Multiple Users
Problem: The system struggled to handle multiple students and tutors simultaneously.
Solution: We optimized database queries and added unique identifiers for students and tutors.
Challenge 3: Deployment
Problem: Deploying the app to PythonAnywhere was challenging.
Solution: We configured production settings, collected static files, and set up environment variables.
6. Final Deployment and Feedback
Deployment
We deployed the app on PythonAnywhere, making it accessible to users via a web browser. The deployment process involved:
- Configuring the production server.
- Setting up the PostgreSQL database.
- Collecting static files and configuring the WSGI file.
User Feedback
We received positive feedback from tutors and students:
- Tutors appreciated the real-time updates and analytics.
- Students found the system easy to use and helpful.
7. Looking Ahead
While we’re proud of what we’ve accomplished, there’s always room for improvement. Some planned enhancements include:
- Push Notifications: Notify tutors and students in real-time.
- Integration with LMS: Connect LabTutee with learning management systems like Moodle.
- Scalability: Optimize the system to handle larger lab sessions.
8. Conclusion
Building LabTutee has been an incredible journey. We’ve learned a lot about software engineering, teamwork, and problem-solving. Most importantly, we’ve created a tool that makes lab sessions more efficient and enjoyable for both tutors and students.
Thank you for following our journey! If you have any questions or feedback, feel free to reach out to us.
Comments
Post a Comment