KCAMathsHub

Start Date: Wed Sep 20 2023A community-based platform for providing peer-assistance with Math school work and questions; currently under development and will be available internally at KCA.

Project Introduction

A community-based platform for providing peer-assistance with Math school work and questions; currently under development and will be available internally at KCA.

Group Members

This project is a collaboration between Elena, Mykola, and Tim; see below for the formal list of members' information:

Learning Outcomes Addressed

  1. Demonstrate engagement with issues of global significance.
  2. Identify your own strengths and develop areas for personal growth.
  3. Demonstrate that challenges have been undertaken, developing new skills in the process.
  4. Demonstrate how to initiate and plan a CAS experience/project.
  5. Show commitment to and perseverance in CAS experiences.
  6. Demonstrate the skills and recognize the benefits of working collaboratively.
  7. Recognize and consider the ethics of choices and actions.

CAS Stages

Investigation

We have been observing that there isn't a widely used internal platform for students to seek help from more experienced or senior school members. So we have decided to build a web app to satisfy this potentially demanding need.

The project aims to build a fully functional and intuitive web-based platform for students to ask questions and provide peer assistance to those needing help.

I am expected to spend at least around 2 hours every day on the project, and I have reached this standard and got far enough with the development in the past month or so. This will continue until the release of the initial version, and by then the hours will be maintenance and customer service, which emphasizes service.

Preparation

  • In-person meetings for the planning and design of the website.
  • Designing the website structure and the database structure.
  • Distributing tasks based on each member's capabilities.

The three of us will divide the work into each of our areas of expertise:

  • Tim will be in charge of the backend and serverside code of the app, the functionality-based APIs on the front end with tRPC and Prisma, and the overall project management.
  • Mykola will be in charge of implementing Elena's UI design.
  • Elena will be in charge of designing the visual layout of the website.

Action

20th Sep, 2023

Proposed the idea with an initial prototype of the project:

Prep

21st Sep, 2023

Initialized and set up the development workspace.

Prep

29th Sep, 2023

Logo design complete.

Logo

1st Oct, 2023

Overall website structure prototype

website structure

6th Oct, 2023

Database prototype

db prototype

14th Oct, 2023

Sidebar Design

sidebar

28th Oct, 2023

Recruitment poster

recruitment poster

30th Oct, 2023

I constructed the following form for candidates to complete as a selection method.

Link to the exported recruitment form

Reflections

08/01/2023

After careful communication with the CAS coordinator, the platform now offers CAS experiences for students too. This can be achieved through contributing answers and moderations.

I believe that the platform should aid students as much as possible, even outside the academic aspects, by creating opportunties for helping each other and thereby building a collaborative and positive community.

As the project came to an end, I started to reflect more on the indispensibility of a collaborative and ethical learning environment where everyone should have equal rights to participate and learn from others. Unfortunately, in certain domains of life, there do not exist such places for enriching communication. I believe that the platform we are building will be a good example of such a place, where students can learn from each other and grow together. It also more of an attempt to estalish a community of learners that may help me bring more impact to the world of eduation in the future.

29/12/2023

Today, the development stage of the platform has officially come to a temporary end.

Lately, I have implemented a documentation page to explicitly establish expectations and convey key information, not for users to utilize the application correctly and ethically, but also to provide important guidance so students don't get lost, hence a higher customer satisfaction.

Beforehand our colleagues have continued discussions through meetings and collaborations on the codebase, from which all of us have acquired skills of collaborative working.

The construction of the platform uses technologies such as TRPC and Prisma, which I had no experience with in the beginning. The 3-month long process of working on the project provided a valuable opportunity to get familiar with these new technologies and also familiarize with newer concepts in newer versions of Next.js, preparing myself for future web development projects.

At every stage where the user can post content, we have included options for them to remain anonymous, and moreover, their email and real name is never revealed on the website to comply with GDPR policies.

Check the evidence below for an overall summary of my contributions to the codebase:

The website is live at this url.

09/12/2023

Recently, due to having to speed up the development of the platform, my colleagues and I have to exchange ideas to collaborate on the frontend more frequently than before. During today's meeting, we discussed and reached consensus on a first-step design for the question asking page, which we have discussed in the group chat among the three of us too.

The meeting accelerated the agreement process as conferencing-styled communication allowed more straightforward expression of perspecives from both of us. Through quick illustrations, without many extra irrelavant details, Mykola successfully conveyed his design proposal to me, which we then discussed and made certain tweaks to for agreement on a implementable UI.

The need for good communication and task distribution and handling was particularly relevant, which I believe is going to help in future projects.

Meeting screenshot:

meeting

01/12/2023

As we approach the launching deadline - early January, the importance of a tighter schedule and a detailed plan becomes more relevant than ever. Yesterday, I immediately contacted both of the other members regarding our progress, and having gone through careful consideration, I coordinated a short-term tracking list in order to constantly remind ourselves of the need to accelerate the design and development of the platform. See below for a screenshot of the tasks I have assigned on GitHub projects.

task tracking

Moreover, we underwent a discussion about whether or not we should open source our project. On one hand, this makes our software completely transparent to the public and users, addressing ethical concerns, however on the other hand, as our project is still in development stage and hence immature, this could expose us to threats and attackers that will take advantage of any unknown vulnerabilities in the system, hence putting users' data and confidentiality at risk. In the end, we formed the consensus to keep the project in private for now.

02/11/2023

Today, we initiated the creation of a poster in an attempt to promote the platform and attract potential candidates for our internal group of "answerers". I was in charge of assigning the task and provide specifications of the poster to our senior designer, who then efficiently produced a working solution, which we then used to spread our message through digital sharing on Google classroom.

During these days, we have been planning and and been in contact with our math teacher, and she assisted us for printing the posters and sticking them around the school.

The process of sticking surprisingly involved ethical considerations: we carefully thought about the potential damage we could do to the wall with tapes and tried to achieve our mission in the most environmentally friendly way.

31/10/2023

Recently, I initiated a recruitment process for our "answerer" team. Managing the HR and marketing aspects of the project was a new experience for me. Taking a break from actual development allowed me to experiment with interacting with people I didn't know, who wanted to join and contribute to the project. This gave me the opportunity to learn how to manage and establish positive personal interactions to achieve effective communication.

Collaboration with my colleagues was essential before moving forward. We needed to exchange ideas and suggestions regarding the design of the recruitment poster and application form. At the point where we reached a consensus upon the content of these documents, I made them publicly available with the assistance of my mathematics teacher to help spread the information around.

The recruitment process was surprisingly successful. Yesterday afternoon, approximately eight people expressed interest in joining, which motivated me to finalize all the documents quickly to ensure the best stakeholder experience with the project.

13/10/2023

For the past month or so, I have been in charge of managing the project's progress and coordinating my co-workers. I have arranged several meetings and and composed organizational emails in the process to ensure that my colleagues are aware of the pace and requirements.

Moreover, I am responsible for the backend development of the platform and so spent a huge amount of time designing, trying, and implementing the required actions on the server side, which includes database management and migrations, using libraries to interact with the client side and the database to establish a connection bridge between the two.

During the development phase, I have gained familiarity with the technological tools such as tRPC, Prisma, TypeScript, and Next.js. Learning to adapt to the brand new version of Next.js was challenging; the development conventions had a huge change and it took time for me to read over the documentation and familiarize myself with the new concepts.

When designing the database, we've formed agreement to display a username of the student's choice, or the default one, in order to hide their actual name. For ethical concerns, the users' data will be safely stored and their names will not be exposed on the platform due to privacy reasons and the GDPR.

Developing a mid scale project is complex and time consuming, the initial plan changed as time goes. However, with successful communication with my colleagues, being able to efficiently distribute tasks reduces my workload and adds a diversity of ideas into our project.