Peer to Peer Software Engineering Project
Thursday, April 18, 2024
Building the Student Peer-to-Peer Tutoring System: A Software Engineering Journey
The UFS Department of Computer Science and Informatics tasked Interstellar Inc with developing a "Student Peer-to-Peer Tutoring System." This project aims to enhance the retention rate of first-year computer science students by providing a platform for peer tutoring, leveraging the collective knowledge of students, tutors, and lecturers. This blog details the development process, challenges faced, time management strategies, and key learnings.
Project Overview
The "Student Peer-to-Peer Tutoring System" is designed to facilitate peer-to-peer tutoring, offering a user-friendly interface and a suite of features to support academic success. The system includes:
- User Authentication: Secure login with UFS credentials.
- Module-Specific Sections: Separate areas for each module.
- Dashboards: Tailored for students, tutors, and lecturers.
- Resource Vault: Repository of educational materials.
- Calendar and To-Do List: Organizational tools for users.
- Live Stream Service: Real-time tutoring sessions.
- Archive of Sessions: Access to past tutoring and lecture sessions.
- Lecturer-Tutor Chat: Communication between lecturers and tutors.
- Tutor Application Process: Students can apply to be tutors.
- Rating System: Feedback on tutoring sessions.
- Statistics: Insights on attendance and participation.
- Quizzes: Assessments to test understanding.
- Coding Section: Practice coding with tutor assistance.
- Reporting System: For tutor misconduct.
- Study Streams: Live streams for collaborative studying.
Development Journey
Backend Development
- Database Design: Crafting schemas for users, modules, resources, sessions, and reviews to ensure data integrity and efficient relationships.
- User Authentication: Implementing secure authentication using JWT and OAuth.
- Resource Management: Developing CRUD operations for educational materials.
- Live Stream and Archive Management: Integrating video conferencing tools and maintaining archives for future reference.
Frontend Development
- User Interface Design: Utilizing frameworks like React for responsive and intuitive UI.
- Dashboard Development: Creating customized dashboards for different user roles.
- Interactive Features: Implementing calendars, to-do lists, and chat functionalities.
- Responsiveness: Ensuring the application works seamlessly across devices.
Challenges Faced
- Integration Complexity: Integrating third-party services such as video conferencing and payment gateways required careful handling.
- Data Security: Ensuring user data privacy and protection involved implementing best practices in encryption and secure authentication methods.
- User Experience: Designing an intuitive interface that provides a seamless user experience was crucial but complex.
- Scalability: Planning for the system to handle growth and increased user load was a significant challenge.
Time Management
Balancing this project with other commitments required effective time management strategies:
- Setting Clear Milestones: Breaking down the project into manageable tasks with specific goals.
- Consistent Work Schedule: Allocating regular time slots for development ensured steady progress.
- Prioritizing Tasks: Focusing on high-priority features first ensured essential functionalities were developed early.
Simplifying the UI
Due to time constraints, I had to simplify the UI design. The revised UI focuses on functionality and usability, ensuring all features are easily accessible:
- Simplified Navigation: Clear and straightforward menu structures.
- Minimalist Design: Reducing visual clutter for a clean, focused interface.
- Responsive Layout: Ensuring usability across different devices.
Key Learnings
- Problem-Solving Skills: Tackling complex issues enhanced my technical and critical thinking abilities.
- Security Best Practices: Implementing secure authentication and data protection methods provided a deep understanding of security principles.
- User Experience Design: Designing a user-friendly interface emphasized the importance of user-centered design principles.
- Effective Time Management: Balancing development with other responsibilities underscored the importance of setting clear goals and maintaining a consistent work schedule.
Conclusion
Developing the Student Peer-to-Peer Tutoring System was a challenging yet rewarding journey. The project provided comprehensive insights into full-stack development, from backend databases to frontend user interfaces. Despite the hurdles, the experience was immensely educational, significantly enhancing my development skills and understanding of software engineering principles. The simplified UI, while practical, ensured the system remains functional and user-friendly, meeting the project's core objectives. This project stands as a testament to the value of perseverance and the importance of continuous learning in software development.
;










