As the rapid development of the Internet and computer technologies, nowadays students aspire to related knowledge and skills. However, access tends to be difficult for students in underprivileged areas due to the lack of teaching resources. All of our team members encountered this situation when our codes went wrong and we didn't know whom we can ask. Therefore, we think that this condition may also be universal especially in the underprivileged schools and areas. This inspired us to make an online learning website with a real-time discussion platform. In this way, whenever a student has a question, he can just type it in the chatroom and everyone who is on this website can help with him. This is also the reason we called our project OurProgrammingLab but now MyProgrammingLab : )

What it does

We develop this web service to provide a self-studying platform for them. Compare to other self-studying platforms, we specialized our product for students in classes. Our website provides a discussion section along with the online code editor and tutorial. The discussion section allows communication and exchange of ideas among the students, which takes advantage of the learning community. Also, it supports different languages, which gives more opportunities for students.

How we built it

We chose Django and Python as the backend of our website, and Ajax for communication between frontend widgets and backend server. The highlighted text editor is totally done with frontend techniques, and the content inside would be sent to backend API for compilation. Afterward, the output result would be compared with a standard answer and thus real-time feedback would be displayed.

The discussion part is implemented with an observer design mode. All the student clients keep listen to the latest message and immediately calls the callback function to refresh it as a new message appears. The send message function is bonded with the button and will broadcast to all the listeners to update message list.

Challenges we ran into

Too little time, thus GUI wasn't well designed and adjusted for different devices and platform.

Accomplishments that we're proud of

We accomplished a project which might help students from underprivileged areas.

What we learned

Co-operation, care for others, compassion, realizing the needs of underprivileged students, needs more effort to make the world a better place

What's next for OurProgrammingLab

Enrich the tutorials and languages offered. Better design and compatibility for frontend on different devices and platforms. Migrate the project from the Windows operating system onto Linux.

Share this project: