Professional Documents
Culture Documents
NURSAT ABDULLAYEV
RAKHAT YEREZHEPOV
Diploma project
Supervisor
Khaimuldin A.
M.S., Senior Lecturer
Kazakhstan Republic
Nur-Sultan, 2022
CONTENTS
Annotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Аннотация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Аңдатпа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Designations and abbreviations . . . . . . . . . . . . . . . . . . . . . 7
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1 Topic analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1 Literature review . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1.1 Clearly establish the focus and purpose of the literature
review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1.2 Overview of the existing systems . . . . . . . . . . . . . . . 11
1.1.3 Summarise the key findings you have taken from the
literature and emphasise their significance . . . . . . . . . . 20
2 Technology Stack . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3 Risk Assessment . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4 Methodology of the work . . . . . . . . . . . . . . . . . . . . . . . 23
5 Software Architecture . . . . . . . . . . . . . . . . . . . . . . . . 29
5.1 SERVER-SIDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.1.1 API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.1.2 Database Management System . . . . . . . . . . . . . . . . 29
5.1.3 Authentication and Authorization . . . . . . . . . . . . . . 29
5.1.4 Security mechanims . . . . . . . . . . . . . . . . . . . . . . 29
5.1.5 Documentation . . . . . . . . . . . . . . . . . . . . . . . . 29
5.2 CLIENT-SIDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.3 Services description . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.3.1 Database Schemas . . . . . . . . . . . . . . . . . . . . . . . 31
5.3.2 Authentication . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.3.3 Data serialization to JSON standards . . . . . . . . . . . . 37
5.3.4 Projects app . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.3.5 Joins app . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.3.6 OpenAPI Documentation . . . . . . . . . . . . . . . . . . . 43
5.3.7 Software testing . . . . . . . . . . . . . . . . . . . . . . . . 44
6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2
Annotation
Research and defense of the thesis consists of several stages of a different
nature. The process as a whole is controlled by the dean’s office of the educational
program. Research is carried out by students of the final year to obtain an
academic degree. A student or group of students is assigned a supervisor who
is responsible for advising and monitoring academic quality. The entire period
consists of stages, access to which is not allowed if the previous one is not
completed. This description is not complete, and each of the entities can be
divided into several sub-items. For 3 years of functioning, Astana IT University
has formed a set of several digital applications that automate or simplify various
activities within the walls of the university. Some of them are primary and use the
development of external commercial organizations, while others are responsible for
specific tasks and were developed by students. Our project aims to complete this
system of independent products. The algorithm for passing the thesis consists
of various stages, and most of them are not digitalized and limit efficiency.
The aim of the project is to solve these problems. The objective of this study
is to develop a web application based on the concepts of a social network to
simplify / automatize / digitalize the processes of the diploma work. If the goal
is to automate / digitalize processes, then for implementation it is necessary to
identify these processes and look for methods and solutions for delegating this
work to information technologies. But the study must be justified. To meet this
requirement, it is necessary to draw up criteria that prove the potential to develop
a more efficient system compared to the current one. This forms the relevance of
the project and shows the practical significance. As part of the thesis research,
problems were identified in the solution of which this project may be suitable.
What distinguishes the interaction of people in a social network and in real
life? Both the social network and face-to-face acquaintance operate with such
a semantic unit as "friends". And what is the hallmark of social networks, they
allow you to bypass certain prerequisites for the formation of business/friendship
relationship.
3
Аннотация
Исследование и защита диссертации состоит из нескольких этапов различ-
ного характера. Процесс в целом контролируется деканатом образовательной
программы. Исследования проводятся студентами выпускных курсов для по-
лучения ученой степени. За студентом или группой студентов назначается
руководитель, который отвечает за консультирование и мониторинг акаде-
мического качества. Весь период состоит из этапов, доступ к которым за-
прещен, если предыдущий не пройден. Это описание не является полным, и
каждое из сущностей можно разделить на несколько подпунктов. За 3 года
функционирования Astana IT University сформировал набор из нескольких
цифровых приложений, которые автоматизируют или упрощают различные
виды деятельности в стенах вуза. Некоторые из них являются первичными и
используют разработки сторонних коммерческих организаций, а другие от-
вечают за конкретные задачи и были разработаны студентами. Наш проект
направлен на завершение этой системы независимых продуктов. Алгоритм
прохождения дипломной работы состоит из различных этапов, и большин-
ство из них не оцифрованы и ограничивают эффективность. Цель проекта
– решить эти проблемы. Целью данного исследования является разработка
веб-приложения на основе концепций социальной сети для упрощения/авто-
матизации/оцифровки процессов дипломной работы. Если стоит цель авто-
матизировать/оцифровать процессы, то для реализации необходимо выявить
эти процессы и искать методы и решения делегирования этой работы инфор-
мационным технологиям. Но исследование должно быть обоснованным. Для
выполнения этого требования необходимо разработать критерии, доказыва-
ющие возможность разработки более эффективной системы по сравнению с
существующей. Это формирует актуальность проекта и показывает его прак-
тическую значимость. В рамках диссертационного исследования были выяв-
лены проблемы, в решении которых может быть пригоден данный проект.
Что отличает взаимодействие людей в социальной сети и в реальной жизни?
И социальная сеть, и живое знакомство оперируют такой смысловой едини-
цей, как «друзья». И что является отличительной чертой социальных сетей,
они позволяют обойти определенные предпосылки для формирования дело-
вых/дружеских отношений.
4
Аңдатпа
Диссертацияны зерттеу және қорғау әртүрлi сипаттағы бiрнеше кезең-
дерден тұрады. Жалпы процестi оқу бағдарламасының деканаты басқарады.
Ғылыми-зерттеу жұмысы ғылыми дәреже алу үшiн магистранттармен жүр-
гiзiледi. Студентке немесе студенттер тобына кеңес беру және академиялық
сапаны бақылау үшiн жауапты жетекшi тағайындалады. Бүкiл кезең кезең-
дерден тұрады, егер алдыңғысы аяқталмаған болса, оған кiруге тыйым салы-
нады. Бұл сипаттама толық емес және субъектiлердiң әрқайсысын бiрнеше
тармақшаға бөлуге болады. Астана IT университетi қызмет еткен 3 жыл iшiн-
де университет қабырғасында әртүрлi қызмет түрлерiн автоматтандыратын
немесе жеңiлдететiн бiрнеше цифрлық қосымшалар кешенiн қалыптастырды.
Олардың кейбiреулерi бастапқы болып табылады және үшiншi тарап коммер-
циялық ұйымдарының дамуын пайдаланады, ал басқалары нақты тапсыр-
маларға жауап бередi және студенттермен әзiрленген. Бiздiң жоба тәуелсiз
өнiмдердiң осы жүйесiн аяқтауға бағытталған. Дипломдық жұмысты тапсы-
ру алгоритмi әртүрлi кезеңдерден тұрады және олардың көпшiлiгi цифрлан-
баған және тиiмдiлiгiн шектейдi. Жобаның мақсаты – осы мәселелердi шешу.
Бұл зерттеудiң мақсаты – диссертация процестерiн жеңiлдету/автоматтан-
дыру/цифрландыру үшiн әлеуметтiк желi тұжырымдамаларына негiзделген
веб-қосымшаны әзiрлеу. Егер мақсат процестердi автоматтандыру/цифрлан-
дыру болса, онда iске асыру үшiн осы процестердi анықтау және бұл жұ-
мысты ақпараттық технологияларға беру әдiстерi мен шешiмдерiн iздеу қа-
жет. Бiрақ зерттеу дәлелдi болуы керек. Бұл талапты қанағаттандыру үшiн
қолданыстағы жүйемен салыстырғанда тиiмдiрек жүйенi әзiрлеу мүмкiндiгiн
дәлелдейтiн критерийлердi әзiрлеу қажет. Бұл жобаның өзектiлiгiн қалыпта-
стырады және оның практикалық маңыздылығын көрсетедi. Диссертация-
лық зерттеудiң бiр бөлiгi ретiнде осы жобаны шешуде қолайлы болуы мүм-
кiн мәселелер анықталды. Адамдардың әлеуметтiк желiдегi және шынайы
өмiрдегi өзара әрекеттестiгi немен ерекшеленедi? Әлеуметтiк желi де, тiрi та-
нысу да «достар» сияқты семантикалық бiрлiкпен жұмыс iстейдi. Әлеуметтiк
желiлердiң ерекшелiгi неде, олар iскерлiк/достық қарым-қатынастарды қа-
лыптастырудың белгiлi алғышарттарын айналып өтуге мүмкiндiк бередi.
5
DEFINITIONS
Following terms are used in this work:
6
DESIGNATIONS AND ABBREVIATIONS
Following designations and abbreviations are used in this work:
7
INTRODUCTION
For the past three years, Astana IT University has developed a collection
of digital applications aimed at automating and simplifying various activities
within the institution. While some of these applications have been acquired from
external commercial organizations, others have been developed by students to
address specific tasks. Our project seeks to complement this existing system of
independent products by addressing the inefficiencies in the thesis evaluation
process, which consists of multiple stages, most of which are currently not
digitalized.
The project is contains "Social Network,"in name, implying the incorporation
of profile-based features commonly found in existing social networks. The initial
stage of the project involves user authorization within the application. In
contrast to the minimal information required for student and faculty profiles in
services like Moodle, which primarily focus on academic events, the authorization
process in our application will include user roles. Since diploma projects involve
three key user categories - students, their instructors, and university-appointed
administrators responsible for project approval and consolidation - it is evident
that each category will have distinct functional requirements. The main objective
of the social network web application project is to provide IT university students
with a comprehensive platform for finding suitable teammates and instructors
for their diploma projects, based on their skills and technology stack. This will
be achieved by delivering a fully functional web application encompassing various
components. These include a robust user authentication and authorization system,
comprehensive user profiles, project management functionalities, a matching
algorithm, communication and collaboration tools, an admin panel, thorough
documentation, rigorous testing and quality assurance measures, deployment and
maintenance plans, as well as training and support provisions.
By offering a platform that enables students to connect with potential
teammates and instructors based on their specific project requirements, the
project aims to resolve the challenges faced by IT university students when
searching for suitable collaborators. The social network web application will
streamline the process, making it easier for students to find project partners
and instructors who align with their skills and technology preferences. The
project scope encompasses the development of a user authentication and
authorization system, distinguished by different roles for students, instructors,
and administrators. Furthermore, the application will feature comprehensive user
profiles, enabling students to identify suitable teammates and instructors based
on their skill sets and previous project experience.
The project’s primary objectives include the creation of a fully functional
and user-friendly web application that empowers IT university students to find
8
appropriate teammates and instructors for their diploma projects. To achieve this,
the application will incorporate a matching algorithm, facilitating efficient partner
and instructor selection. Additionally, the application will provide communication
and collaboration tools to enhance project management and workflow. Rigorous
testing, quality assurance, and comprehensive documentation will ensure that the
project meets the highest standards of quality and performance.
To ensure the successful completion of the project, several key activities will
be undertaken. The development process will involve designing and implementing
the user authentication and authorization system, taking into account the
different roles and permissions for students, instructors, and administrators. This
system will safeguard the application’s security and restrict access to specific
functionalities based on user roles.
A crucial aspect of the project is the creation of comprehensive user profiles.
These profiles will enable students to showcase their skills, previous projects, and
technology preferences, providing valuable information for potential teammates
and instructors during the matching process. The profiles will be designed with
a user-friendly interface, allowing students to easily update and manage their
information.
The matching algorithm will play a pivotal role in the social network web
application. It will analyze the profiles of students and instructors, taking into
account their skills, project requirements, and other relevant factors to generate
suitable matches. The algorithm will aim to optimize the compatibility and
synergy between students and instructors, facilitating successful collaborations
and enhancing the overall quality of the diploma projects.
Effective communication and collaboration tools will be integrated into
the application to facilitate smooth project management and workflow. These
tools may include messaging systems, file sharing capabilities, and project task
management features. By providing a centralized platform for communication and
collaboration, the application will enhance coordination and productivity among
project team members.
To ensure the application’s reliability and performance, rigorous testing and
quality assurance processes will be implemented. Various testing methodologies,
such as unit testing, integration testing, and user acceptance testing, will be
employed to identify and rectify any issues or bugs. Additionally, the project
will adhere to best practices in software development, following coding standards,
version control, and documentation guidelines.
The social network web application project aims to provide IT university
students with a comprehensive platform for finding suitable teammates and
instructors for their diploma projects. Through the development of a user
authentication and authorization system, user profiles, a matching algorithm,
9
communication and collaboration tools, and other essential components, the
project seeks to streamline the process of forming project teams and enhance
the overall quality and efficiency of diploma projects at Astana IT University.
10
1 Topic analysis
1 Digital Literacy and Awareness: The study showed that students’ usage habits
were highly influenced by their levels of digital literacy and awareness of
educational applications. Higher-achieving students were more likely to use
educational applications efficiently and incorporate them into their learning
activities.
2 App Features and Usability: The study found that student engagement and
satisfaction were significantly influenced by the features and usability of
educational apps. Interactivity, user-friendly interfaces, and clear instructions
were noted as major determinants of app usage.
12
3 Value perception: One of the key factors affecting the use of educational
applications is their perceived value. Apps that students believed were
pertinent, in line with their learning objectives, and capable of enhancing
their academic achievement were more likely to be used.
4 Integration into the curriculum: The study highlighted how important it is to
include educational apps in the curriculum in order to promote usage. Students
were more inclined to use apps and recognized their worth in enhancing their
learning outcomes when instructors suggested or required them as a part of
the course.
5 Support and training: It has been determined that providing students with
the necessary support and training is essential to developing their digital
literacy and raising their knowledge of educational applications. Giving
students instructions and tools to use the apps with boosted their interest
and utilization.
In order to increase student use and efficacy of educational applications, the
study underlines the significance of digital literacy and awareness. It highlights
how important it is for academic success to be improved by teachers and
institutions fostering digital literacy abilities, offering support and training, and
incorporating educational apps into the curriculum. The findings of this study
can aid in the development and deployment of educational applications as well as
programs focused at enhancing digital literacy in learning environments.
Incorporating social networking sites into medical education has a number
of benefits, according to Cartledge et al. (2013). [7] First, social networking
sites offer a forum for discussion and collaboration between medical students,
instructors, and healthcare specialists. Sharing of ideas, resources, and experiences
is made possible through these platforms, which can improve education and
career development. Social networking websites also aid in the creation of
online communities that aid in collaboration and mentoring. Social networking
platform use in medical education presents special possibilities for learning.
Students can participate in discussions, get feedback, and share their clinical
experiences using platforms. According to Cartledge et al. (2013), social network
platforms can generate an exciting and interactive learning environment that
encourages the growth of students’ analytical and problem-solving abilities.
Social networking websites also make it easier to access a variety of educational
resources. Social networking platforms give medical students the ability to
establish professional contacts and collaborate with colleagues and subject-
matter authorities. According to Cartledge et al. (2013), these networks can offer
beneficial possibilities for mentoring, career guidance, and research collaborations.
Students may deepen their knowledge, acquire insight into various medical
specializations, and develop professional relationships that can help their future
13
jobs by meeting with healthcare professionals and specialists.
Social networking services have numerous advantages, but they also come
with difficulties and moral dilemmas. Concerns about privacy, secrecy, and
upholding professionalism online are highlighted by Pandey and Bein (2018).
[8] It is crucial that educational institutions and organizations create policies
and instruct students on acceptable internet behavior and the potential risks
of disclosing confidential patient data. The study’s findings could be used to
build a social network that automates the thesis writing process. The study
underlines how social networks may help students communicate, work together,
and engage in informal learning. Students can participate in online discussions,
share resources, get help, and establish their professional identities in a digital
educational environment by integrating related features and functionalities into a
social network specifically designed for thesis processes. The study also highlights
how essential it is to address issues like privacy, security, and responsible use while
creating a social network for thesis-related tasks. To ensure moral and proper
usage of the platform while safeguarding private data, clear rules and standards
should be set.
In the context of higher education, Eid and Al-Jabri (2016) investigate how
social networks, knowledge sharing and student learning are related. Eid and Al-
Jabri (2016) draw attention to the importance of social networks in facilitating
knowledge sharing among college students. Social networking sites give students
the opportunity to connect with each other, work together, and share knowledge
and materials relevant to their academic interests. Through discussions, questions
and expert advice, these platforms give students the opportunity to better
understand the material taught as well as their own learning outcomes. [1]
Advantages of social networks for education: This paper lists numerous
advantages of social networking sites for education (Homola & Kubinchova, n.d.).
[9] In the first place, social networking sites establish a feeling of community and
encourage social connections between students, which can boost motivation and
engagement. Students can build support networks and gain access to a range of
viewpoints and expertise by interacting with their professors and other students.
Social networking platforms also offer opportunities for active learning and skill
development. Students can take part in online discussions, exchange ideas, and
work collectively to solve challenges. This active engagement encourages analytical
thinking, in-depth comprehension, and the practical application of knowledge.
The adoption and use of the Moodle platform in educational institutions is
being investigated by Huang et al. in his 2013 study. [10]The main topic of the
article is Moodle, an open source learning management system popular in colleges
and universities. The adoption and use of Moodle by teachers and students, and
how implementation affects productivity, is covered in this article. The study
14
offers an overview of the potential benefits of using the Moodle platform and its
impact on the creation of a social network for the digitization of theses. To gather
information on the adoption and execution of the Moodle platform at educational
institutions, the researchers carried out a survey. Teachers and learners were given
the survey questionnaire, and the responses were examined to look at factors
including system quality, perceived value, and enabling circumstances as potential
antecedents of Moodle adoption. The study also looked into how using Moodle
affected learning outcomes, satisfaction, and performance in terms of learning
performance.
1 Antecedents of Moodle Usage: The study found a number of aspects influencing
Moodle adoption and usage. Users’ intentions to use Moodle were found to
be significantly affected by the system’s quality, including accessibility and
technical functionality. The considered worth and advantages of Moodle, also
known as its perceived value, significantly impacted its adoption. In addition,
supportive circumstances like technical assistance and training were essential
in fostering the use of Moodle.
2 Performance Consequences: According to the research, using the Moodle
platform has advantages for performance. The use of Moodle has been
associated by students with improving their academic achievement, including
gaining knowledge and skill improvement. The perceived improvement in
educational results was strongly connected with Moodle usage satisfaction.
The study on the antecedents and performance consequences of using the
Moodle platform has direct relevance to the development of a social network for
the digitalization of diploma work processes.
1 User adoption: In their 2013 study, Huang et al. highlighted the significance of
elements including system quality, perceived utility, and simplicity of use in the
adoption and use of learning management systems like Moodle. By ensuring
that the platform is user-friendly, has useful features and functionality, and
offers the required technical support and training to encourage uptake and use
among graduate students, these findings can influence the design of a thesis
social network.
2 User Satisfaction: The study underlines the link between users’ perceptions of
improved learning outcomes and their satisfaction with the Moodle platform.
This implies that a social network for diploma work procedures that is well-
designed and easy to use can help to increase user happiness. The platform can
increase user happiness and engagement by taking user feedback into account,
implementing user-friendly interfaces, and offering a seamless user experience.
3 Digitization of thesis processes: This research is aligned with the objective of
digitizing thesis procedures and focuses on the usage of an online platform
(Moodle) for educational purposes. It is possible to streamline and digitize
15
the thesis-related activities, including selecting a project, cataloging all
projects, engaging with students and professors, and learning about professors’
backgrounds, by developing a dedicated social network. This improves the
thesis management process’ effectiveness, accessibility, and flexibility.
Overall, the results of the study provide valuable information about the factors
that contribute to the successful implementation and use of educational platforms
such as Moodle. By considering these factors and incorporating relevant features
into our social network, it is possible to create a platform that enhances learning
efficiency and enhances user satisfaction among graduate students.
Grevtsov et al.’s (2021) research focuses on environmental education’s value
and digitalization in the context of modernisation and reform. [11] According to
the researchers, incorporating digital technology into environmental education can
have a good impact on learning opportunities, accessibility, and sustainability. In
order to successfully handle environmental issues, they underline the significance
of employing digital tools and platforms. Analyzing the influence of digitalization:
The researchers want to look at how digitalization is affecting the field of
environmental education and how it might help modernize and reform it. They
want to know how using digital technologies can lead to better educational
outcomes.
Mentes and Turan (2012) seek to assess the influence of digitization on
modernization and reform in this field. [12] They are interested in learning
how the use of digital technology might enhance environmental education’s
overall potency and relevance. The authors hope to demonstrate how digitization
might change and advance conventional educational processes by looking at
its effects. This article’s evaluation of the effect of digital technology on the
results of environmental education learning is one of its primary objectives. The
authors want to discover if incorporating digital tools and platforms enhances
students’ environmental knowledge acquisition, critical thinking, and problem-
solving abilities. The authors’ aim to determine the benefits and drawbacks of
these technologies in enabling more profound and interesting learning experiences
by evaluating the effectiveness of digitalization. Grevtsov et al.’s aim is to
pinpoint and emphasize certain advantages associated with the digitalization of
environmental education. [11] They look at how using technological resources
and platforms might enhance instruction, encourage student participation, and
raise environmental consciousness. The authors also look at how digitalization
might support sustainable development by enabling students to comprehend
and successfully deal with environmental issues. Grevtsov et al. (2021) talk
about how digital technologies are becoming more and more significant in the
area of environmental education. The authors outline the possible advantages
of digitalization, such as enhanced learning opportunities, expanded availability,
16
and increased sustainability. They underline the significance of combining
technological resources and platforms to further environmental education by
addressing issues and emphasizing potential. For teachers, administrators, and
researchers looking to use digital technology to improve environmental education
and foster positive change, this research offers helpful insights.
The use of digital environments to enhance group work in a learning
environment is investigated by Brown et al. (2008). [13] The researchers outline
the design and deployment of the online platform and assess its efficacy through a
number of case studies. Avatar customization, collaborative spaces, and other
critical aspects of a virtual environment that are intended to enhance group
interaction and participation are highlighted. The article lists a number of
benefits of adopting virtual world settings for cooperative projects. Virtual worlds’
immersive features provide users a sense of presence and reality, which improves
learning in general. Second, synchronized communication tools make it possible to
connect in real time, encouraging group members to work together and socialize.
Additionally, the ability to personalize an avatar encourages a sense of community
in the virtual world and lets users express their unique personalities. These
advantages support more motivation and active group involvement. The authors
identify several difficulties and concerns with employing virtual world platforms
for collaborative work, despite the potential advantages. The platform may be
unable to function properly due to technical problems like connectivity problems
and system requirements. Additionally, some students may find it difficult to
learn how to engage and navigate in a virtual environment. Godin and Terekhova
(2021) highlight the use of virtual world environments as a promising tool for
facilitating teamwork and collaboration in educational settings. [14] The study
highlights the potential benefits of virtual worlds, such as increased presence,
real-time interaction, and customizable avatars, which contribute to increased
engagement and motivation. However, he also acknowledges the challenges of
technical issues and the learning curve. Further research and exploration is needed
to fully understand the effectiveness and potential of teamwork in a virtual world
environment.
Dolmans et al. (2001) investigate the function of group work in PBL and
the difficulties that may occur when it is put into practice. [15] The authors
stress the importance of group work being in line with PBL’s key principles,
which aim to encourage active learning, problem-solving abilities, and critical
thinking. The article discusses typical issues with group work in PBL and
offers suggestions for overcoming these difficulties while upholding the PBL
approach’s core values. Dolmans et al. (2001) identifies a number of issues with
PBL group projects. These obstacles include the potential for uneven labor and
responsibility distribution among group members, challenges in creating efficient
17
group dynamics, and variations in each student’s participation and motivation.
Additionally, documented difficulties in PBL group work include the conflict
between content-driven learning and process-oriented learning as well as the
possible impact of hierarchical relationships within the group. [15] Individual
student involvement and motivation levels may differ within a group, which
presents a barrier to the process of group work as a whole. While some students
may be very motivated and actively participate to the group work, others may
engage with it less. This could lead to unequal involvement and have an effect on
the caliber of the group’s results. Searching for an interested student in a group
or acquaintance for the same project you are interested in may not be enough.
For this reason our platform helps to find like-minded students to participate in
thesis work. Finding interested student for same project may be not enough.
Lin et al. (2011) look into how social networks affect how well overseas
students adjust to their new environment. [16] This study aims to comprehend
how social networking sites like Facebook benefit international students in their
new educational and cultural surroundings and facilitate social interactions.
Kumar (2012) emphasizes how social networking websites help overseas students
build social bonds. [17] Students can grow their social networks through social
networking, maintain contact with friends and family back home, and form
new friendships. Additionally, it offers a forum for social support, counseling,
and experience-sharing, all of which can enhance students’ social wellbeing
and reduce feelings of isolation and feeling alone. The study investigates how
social networks and academic achievement are related. This article provides
evidence that social networking platforms can be useful resources for academic
knowledge, collaborative learning, and peer support, despite other research
suggesting that social networking can be distracting and have a negative impact
on academic performance. Through these platforms, international students can
access educational resources, take part in group discussions, and request academic
support, potentially enhancing their academic performance. The essay discusses
how social networks might help overseas students more easily adapt to their
new environment. Social networking sites give students a virtual environment
where they can research and discover the host culture, connect with local friends,
and participate in cross-cultural exchanges. International students can benefit
from these connections by better understanding cultural norms, learning about
local practices, and navigating the difficulties of cultural acculturation. The value
of social networking sites in aiding overseas students’ adjustment processes is
highlighted by (Ruiz-Mercader et al., 2006). [18] The paper emphasizes social
networks’ beneficial effects on interpersonal interactions, academic achievement,
and cultural acculturation. focuses on the advantages of social networks for
cross-cultural communication, information exchange, and social support. The
18
authors do, however, agree that further study is required to fully understand the
complexity and potential drawbacks of social networks in the context of overseas
students adjusting.
In his 2005 article, Dineen introduces the Teamxchange project, a novel
team-based learning scenario including virtual teams and adaptable team
membership. [19] Examining how this strategy affects teamwork, satisfaction, and
student learning results is the author’s goal. The article explores Teamxchange’s
conception and execution, stressing its salient traits, difficulties, and advantages.
The key aspects of the Teamxchange project are described in the article. This
includes the formation of virtual teams so that students can work together across
distances and hone their virtual teamwork abilities. The project also integrates
the idea of fluid team membership, where team membership varies over the
course of the project to imitate real-world team dynamics and give students
access to a range of experiences and perspectives. The advantages of including
virtual teams and adaptable team membership in a Teamxchange project are
covered by Dineen (2005). [19] Students can practice teamwork, coordination, and
remote communication skills through virtual teams. They also present a chance
for intercultural appreciation and understanding. Students who are members of
flexible teams are exposed to the difficulties and advantages of working in a variety
of teams, developing their adaptability, flexibility, and capacity to function well
in a range of team dynamics.
The difficulties and aspects of implementing virtual teams and variable team
membership are covered in the essay. Time zone variations, technological hurdles,
and possible problems establishing trust and team cohesion in virtual teams
are some of the difficulties. To guarantee a smooth transition and productive
teamwork, teachers may need to provide additional support and direction due
to the dynamic nature of team composition. Dineen (2005) analyzes student
input and findings to assess the success of the Teamxchange project. According
to the article, students have positive feelings about the experience, which has
improved their problem-solving abilities, communication skills, and knowledge of
virtual teamwork. In comparison to conventional team projects, students reported
greater happiness and involvement. Dineen (2005) mentions the Teamxchange
project as an example of a ground-breaking strategy for team-based learning that
incorporates virtual teams and adaptable team membership. The paper highlights
the advantages of this strategy, such as fostering virtual cooperation abilities,
learning about various viewpoints, and raising student satisfaction. Instructors
can successfully create similar team project experiences that improve students’
cooperation and collaboration skills by knowing these issues and factors.
19
1.1.3 Summarise the key findings you have taken from the
literature and emphasise their significance
The above studies give an idea of several important aspects for this thesis: the
previous experience of implementing digital products in educational organizations,
the features of academic fields in the operation of such web applications. These
conclusions are useful for this work, because they tell about the feedback of the
audience on the change in the format of the usual organizational routine, as well
as the result of these projects and the conclusion about the appropriateness. This
can be useful both for making decisions in the development of the application,
as well as for drawing up a strategy for presenting the finished product to the
audience and analyzing their feedback.
20
2 Technology Stack
21
3 Risk Assessment
2 Scope Risks:Expanding the scope of the project beyond its original objectives,
leading to scope creep and increased costs and time.
Mitigation Plan: Develop a comprehensive project plan that includes clear
objectives and deliverables. Regularly review and update the project plan to
ensure that it remains on track.
3 Resource Risks: Limited budget and resources could lead to project delays and
compromises on quality.
Mitigation Plan: Conduct regular budget and resource assessments to
identify areas where adjustments can be made. Prioritize critical features and
deliverables to ensure the most essential components are delivered within the
available budget and resources.
4 User Risks: Users may not use the platform as intended or fail to provide
accurate information, leading to unsatisfactory project outcomes.
Mitigation Plan: Conduct user research to identify user needs and preferences.
Develop clear and comprehensive user guidelines and policies. Regularly
monitor user activity and provide training and support as necessary.
22
4 Methodology of the work
The concept of a social network whose topics are related to graduation projects
can be applied to any university. But the relevance and focus of this work is
closely related to Astana IT University. After all, the applied filters, fields for
databases directly depend on the characteristics of the academic environment.
For universities not related to IT, the requirement to specify the frameworks and
libraries used will be inappropriate. The idea behind this work was not directly
inspired by existing products. An oral survey recorded that among the projects
of past graduates there were projects related to the digitalization of the issuance
of certificates. This helped shape a more specific theme and define users. And
the concept of a social network is more generalized and abstract, and was chosen
because it most accurately describes the spectrum of the planned functionality
and service.
Global social networks are not suitable to form development patterns and
research methodology. They are focused on the general public, and the audience
itself gathers according to their interests in general groups, publics, chats.
Privileges and user roles are limited, and the administration is mainly responsible
for violations and commercial transactions.
Therefore, we proceeded from developments as social networks with a specific
theme, because they limit the range of users and also their functionality is focused
on performing certain tasks. For example, you can indicate your work experience
in your profile and also watch other companies. Look for instructors, as well as
submit your projects for approval.
Before starting to develop the application, a survey was conducted among
university students to confirm the relevance of the idea of our project. The
question was an attempt to determine all the inconveniences and various kinds
of problems that students encountered when choosing partners, as well as when
fulfilling the requirements of the university in order to obtain approval. The list
of questions we asked from students:
1. Who is your teammates in diploma project?
This question is useful to understand the dynamics of team formation in
diploma projects. It provides insights into how students collaborate and form
teams, which can help identify patterns and preferences in selecting project
partners. It resulted in fairly distributed answers to several parts, in figure, quarter
of respondents found teammates from not specially designed services such as
messangers, 30% decided to make team with groupmates, which does not allow
to assume that it based on mutual trust and confidence, because groupmates are
more available to contact to to the fact of being assigned to one social unit.
23
Figure 4.1 – Question 1
This question helps assess the ease or challenges students face when
searching for teammates for their diploma projects. Understanding the difficulties
encountered in team formation can highlight the need for a platform that
facilitates the process and improves efficiency.
3. Have you faced any problems in the team when choosing a technology stack?
This question aims to identify any issues students may encounter when
selecting a technology stack for their diploma projects. It helps uncover potential
barriers and challenges that can be addressed through the proposed social
network-based platform, which can provide resources and guidance in choosing
appropriate technologies.
24
Figure 4.3 – Question 3
This question explores the experiences students have had in finding mentors
for their diploma projects. It sheds light on the difficulties they may have faced
and the level of support available. The insights gained can inform the development
of features within the platform to facilitate mentor matching and support.
25
Figure 4.5 – Question 5
6. Do you think it is easy to find free and relevant students from other groups?
This question investigates the ease of finding suitable students from different
groups who are available to collaborate on diploma projects. It provides insights
into the challenges students may face when seeking cross-group partnerships and
informs the platform’s features to facilitate connections and broaden collaboration
opportunities.
8. Whould you use special platform for searching diploma topics and partners?
This question gauges students’ willingness to utilize a dedicated platform for
searching diploma topics and partners. It serves as a validation of the need for
the proposed social network-based platform and its potential acceptance among
the target user group. The high percentage of positive responses demonstrates the
relevance and value of the platform.
According to results, we can track the tendency: in figure, pie chart shows
that 76,7% of respondents claimed they would use a special platform for searching
diploma topics and partners, 74,1 % of them faced some problems in the team
when choosing a technology stack, etc. Answers of respondents prove the relevance
of the work.
Were there works that influenced the idea of your project? As mentioned
earlier, since the idea of the application is local to IT universities, and besides,
it does not introduce a specific algorithm from computer science or engineering
discoveries of recent years, there is no specific prototype. But familiarization with
27
products such as Linkedin can give a vague idea.
There is a live non-commercial web application that was explored during the
Django boot camp at the educational portals. The application is less complex and
uses o Link: https://django-2021.herokuapp.com/
You can see that there is only registration, personal mail, projects and
developers. Projects only represent entities owned by a particular developer. You
can write to another developer, but you cannot influence his project.nly one
"batteries included"framework.
28
5 Software Architecture
Social network application for diploma work projects does not involve any
complex architectural patterns due to not dealing industrial or commercial level
load and user base. The server-side of the application is the REST API developed
by Django Rest Framework (DRF), in ecosystem of which all the necessary
security and network services are included. The client-side of the application is
developed using React library which allows to develop responsive UI based on
components.
5.1 SERVER-SIDE
5.1.1 API
Django REST Framework: Django REST Framework (DRF) is a
comprehensive toolkit for constructing Web APIs in Django. It offers a collection
of tools and libraries for facilitating the development of RESTful APIs,
encompassing request handling, serialization, authentication, and other related
functionalities.
5.1.2 Database Management System
PostgreSQL: PostgreSQL is an open-source relational database management
system (RDBMS). Renowned for its robustness, scalability, and rich feature set,
it serves as the underlying database for storing and retrieving data in the project.
5.1.3 Authentication and Authorization
SimpleJWT: SimpleJWT is a Django library designed to handle JSON Web
Tokens (JWT). JWT provides a stateless authentication mechanism allowing users
to authenticate and acquire a token, which subsequently authenticates subsequent
requests. SimpleJWT simplifies JWT authentication within Django, providing
utilities for token generation, validation, and other related operations.
5.1.4 Security mechanims
cors-headers: cors-headers is a Django library that handles Cross-Origin
Resource Sharing (CORS) headers. CORS is a security mechanism that permits
restricted resources, such as APIs, to be requested from a domain different
from the one hosting the resource. cors-headers simplifies the configuration and
management of CORS headers in Django, enabling cross-origin requests to the
API.
5.1.5 Documentation
drf-yasg: drf-yasg (Django REST Framework Yet Another Swagger Generator)
is a library that automatically generates OpenAPI (formerly Swagger)
documentation for Django REST Framework APIs. It facilitates the automatic
generation of API documentation by analyzing DRF views, serializers, and
29
viewsets. With drf-yasg, users can effortlessly explore and test API endpoints
via the Swagger UI interface.
5.2 CLIENT-SIDE
Client-Side (Front-End):
31
Figure 5.1 – AbstractModel schema
In figure 5.1, we have an AbstractModel that defines several common fields like
public_id, created, and updated. These fields can be inherited by other models that
require these attributes. The public_id field, for instance, is defined as a UUID
field with unique constraints, automatically generated using uuid.uuid4() as the
default value. The created and updated fields are automatically updated with the
current date and time whenever a record is created or modified.
To complement the abstract model, an AbstractManager is defined
as a custom manager class. The manager provides a convenient method
get_object_by_public_id() to retrieve an instance of the model using the
public_id field. If an object with the specified public_id exists, it is returned;
otherwise, an appropriate exception, Http404, is raised. This manager can be
inherited by other models that share similar lookup requirements.
The abstract model and manager combination allows for code reuse, promotes
consistency, and simplifies the implementation of common functionalities across
multiple models. By inheriting from the AbstractModel, other models gain
access to the shared fields and can take advantage of the custom manager’s
methods, such as get_object_by_public_id(). This approach promotes modular
and maintainable code by centralizing shared logic and reducing code duplication.
32
b. Users app
In figure 5.3, the Project model represents a project entity and includes
fields such as author, title, description, type, technologies, tags, participant1,
participant2, participant3, and edited. It also inherits from the AbstractModel
class, which provides common fields like public_id, created, and updated. The
Project model has a ForeignKey relationship with the User model, representing
the project’s author, and a ManyToManyField relationship with the Tag model
for categorizing the project. The ProjectManager class serves as the manager for
the Project model.
The ProjectSerializer is responsible for serializing and deserializing project
data. It extends the AbstractSerializer and includes additional fields such as
author, liked, and likes_count. The author field is a SlugRelatedField that
represents the project’s author by their public ID. The liked field and likes_count
field are calculated using the get_liked() and get_likes_count() methods,
respectively, which retrieve the current user’s like status for the project and
the count of total likes. The validate_author() method ensures that a project
can only be created for the authenticated user. The to_representation() method
34
is overridden to include the serialized author data in the representation. The
update() method is also overridden to set the edited field to True if it was not
previously edited. The ProjectSerializer has a nested Meta class that defines the
model as Project and lists the fields to be serialized, including read-only fields. d.
Joins app.
In the figure 5.4, the Join model represents a join request made by a user
to participate in a project. It includes fields such as applicant, project, message,
accepted, and edited. The applicant field is a ForeignKey to the User model,
representing the user who made the join request. The project field is a ForeignKey
to the Project model, representing the project for which the user wants to join.
The JoinManager class serves as the manager for the Join model.
The JoinSerializer is responsible for serializing and deserializing join request
data. It includes fields such as applicant and project, which are represented
as SlugRelatedField using the users’ and projects’ public IDs respectively. The
to_representation() method is overridden to include the serialized applicant data
in the representation. The validate_project() method ensures that the project
field is valid. The JoinSerializer has a nested Meta class that defines the model as
Join and lists the fields to be serialized, including read-only fields.
The JoinViewSet handles the API endpoints related to join requests. It
extends the AbstractViewSet and sets the queryset to Join.objects.all() and the
serializer_class to JoinSerializer. The JoinViewSet defines the perform_create()
method to automatically assign the authenticated user as the applicant when
creating a join request. The get_object() method is overridden to retrieve the
join request based on the public ID. The accept() method is decorated with
@action and handles the PATCH request for accepting a join request. It checks
if the authenticated user is the author of the project and updates the accepted
35
field of the join request accordingly. If the join request is accepted, it updates the
project’s participant slots and, if applicable, assigns the user as an instructor. The
JoinViewSet also includes the necessary import statements for models, serializers,
decorators, permissions, and responses.
These models, serializers, and viewsets work together to provide the
functionality for creating, retrieving, and accepting join requests for projects
within the Joins app.
5.3.2 Authentication
The authentication flow using simple-jwt in the server-side API of the project
can be described as follows:
1. Registration:
• When a user wants to register, they make a POST request to the
RegisterViewSet endpoint.
• The create method in the RegisterViewSet class is called.
• The user data is validated using the UserSerializer. If the data is valid, a
new user is created using the create_user method of the User model.
• After the user is successfully created, a refresh token and an access token
are generated using the RefreshToken.for_user method.
• The user data, along with the tokens, is returned as a response.
36
2. Login:
3. Token Refresh:
• When a user needs to refresh their access token, they make a POST request
to the RefreshViewSet endpoint.
• The create method in the RefreshViewSet class is called.
• The refresh token is validated using the RefreshTokenSerializer. If the token
is valid, a new access token is generated.
• The new access token is returned as a response.
38
Figure 5.7 – Project creation bar
The user that registered on system, has right to create a project. When user
is loged in, site navigates to main pages with listed projects, as shown in figure,
at the top of the page there is the field which allows user to create a project.
The scenario when user clicks the bar is modal appearing. In terms of
appereance of form to handle project creation, using react-bootstrap modals was
chosen.
39
required to perform the task. Users can quickly input the necessary information,
submit the form, and continue working on other tasks within the application.
By using a Modal, the form for creating a new project is displayed within the
context of the application. Users can reference existing project data, perform
actions related to other projects, or access relevant information without the
need to navigate away. It keeps the user connected to the overall application
flow and maintains context. Modals can draw attention to specific tasks or
actions, as they typically appear as a prominent overlay with a clear focus
on the form or content within them. By isolating the project creation process
within a Modal, it helps users understand that they are performing a distinct
action and reduces distractions from other elements on the page. Modals allow
for real-time validation and instant feedback. If there are any errors or missing
information in the project creation form, validation can be performed immediately
within the Modal, providing feedback to the user without requiring a page reload.
This immediate validation and feedback improve the overall user experience and
help users correct any issues efficiently. Using a Modal eliminates the need to
handle complex navigation and state management that comes with navigating to
a separate page. The Modal component can be easily controlled and managed
within the existing page structure, simplifying the overall application logic and
reducing code complexity. The use of a React-bootstrap Modal for creating a
project provides a more seamless, efficient, and focused user experience within
the context of the application, allowing users to create projects without the need
for navigating to another page.
Updating and Deleting of Project:
40
In figure 5.9, the UpdateProject component in the frontend is responsible for
rendering a modal form that allows users to modify the details of an existing
project. When the user clicks on the "Modify"dropdown item, the modal form is
displayed with pre-filled fields containing the current project information. The user
can make changes to the project title, description, type, and technologies fields.
Upon submitting the form, an HTTP PUT request is sent to the backend API to
update the project with the new information. If the request is successful, a success
toast notification is shown, and the project list is refreshed. The ProjectViewSet in
the backend handles the API endpoints related to projects, including updating a
project. The update method is responsible for handling the HTTP PUT request to
update a specific project. The request data is validated using the ProjectSerializer.
If the validation passes, the project is updated with the new information. The
updated project is then serialized and returned in the response.
The ProjectViewSet also provides additional actions such as like and
remove_like to handle liking and unliking a project respectively. It implements
the create method to handle the creation of new projects. The search_projects
action allows users to search for projects based on a search query provided in the
request.
Other UI solutions:
a. Project Card: The Project component is responsible for rendering a single
project card. It displays information about the project, such as the project title,
author, creation date, type, technologies, description, and number of likes. The
component also includes buttons for liking the project and joining it (if it’s not a
single project view).The component uses various React Bootstrap components
to structure the card layout and display the project details. It also utilizes
icons from the Ant Design library for the like and join buttons. The Project
component provides functionality for liking/unliking a project and deleting a
project. When the like button is clicked, an HTTP POST request is sent to the
backend API to like or unlike the project, depending on its current state. The
handleLikeClick function handles this logic and triggers a refresh of the project
list. If the user viewing the project is the author, a dropdown menu with options
for updating the project and deleting it is displayed. Clicking on the update
option opens the UpdateProject modal form, while clicking on the delete option
triggers the handleDelete function to send an HTTP DELETE request to delete
the project.The component also includes a toast notification component (Toaster)
that is displayed when a project is successfully deleted.
b. Single Project: The SingleProject component is responsible for rendering a
single project page. It receives the projectId from the URL parameters using the
useParams hook from react-router-dom. The component uses the useSWR hook
41
from the swr library to fetch the project data and join requests from the backend
API. Inside the SingleProject component, a layout component (Layout) is used to
structure the page and provide a back navigation option. The layout component
includes a header and content section.
If the project data is available (project.data exists), the component renders the
project details using the Project component. It passes the project data as a prop
and sets the isSingleProject prop to true to indicate that it’s a single project view.
The Project component displays information about the project, such as the title,
author, type, technologies, description, and number of likes. Below the project
details, the component renders the CreateJoin component. This component allows
the user to create a join request for the project. It receives the projectId as a prop
and provides a form for submitting the join request. The refresh prop is passed to
both the Project and CreateJoin components, allowing them to trigger a refresh
of their respective data when necessary. Next, the component renders the list of
join requests (Join components). It checks if the join requests data is available
(joins.data exists) and if it’s an array (Array.isArray(joins.data.results)). If both
conditions are true, it maps over the join requests and renders a Join component
for each one. The Join component displays information about the join request,
such as the user, date, and status.
If the project data is not available, a "Loading..."message is displayed.
The SingleProject component is used in the routing configuration in the App
component. It is associated with the route path /project/:projectId/ and rendered
as a protected route. This means that the user must be authenticated to access
the single project page.
5.3.5 Joins app
The Joins app is designed to facilitate the process of users sending join requests
to project authors and allowing authors to accept or deny those requests. Users can
submit a join request with an accompanying message to express their interest in
participating in a project. Project authors have the ability to review and accept
join requests. When a request is accepted, the participant slots for the project
are updated accordingly, and the user who made the join request becomes a
participant in the project. If available, the user can also be assigned as the project’s
instructor. The app includes models to represent join requests, viewsets to handle
CRUD operations and request acceptance, and serializers to serialize and validate
the data. The goal is to streamline the process of joining projects and manage
participant assignments efficiently.
42
Figure 5.10 – Single Project page
In figure 5.10, The Join component represents a join request made by a user
for a specific project. It displays the user’s avatar, name, and the date of the
join request. If the user is the applicant of the join request, a dropdown menu is
shown, allowing them to update or delete the request. The join request message
is also displayed. The CreateJoin component provides a form for users to create
a join request for a specific project. It displays the user’s avatar and a text input
field where the user can enter their join request message. When the "Join"button
is clicked, the join request is sent to the backend using an HTTP POST request.
The UpdateJoin component allows users to update their existing join request for a
project. It displays a "Modify"option in a dropdown menu. When clicked, it opens
a modal that contains a form with a textarea where the user can update their join
request message. Clicking the "Modify"button in the modal sends the updated
join request to the backend using an HTTP PUT request. These components
are designed to provide an interactive user interface for creating, updating, and
managing join requests within the Joins app. The components use axios for making
HTTP requests to the backend API, and they also utilize hooks, context, and
Bootstrap components for UI rendering and interactivity.
5.3.6 OpenAPI Documentation
Swagger is a widely-used tool in the development community for documenting
and visualizing RESTful APIs. Its primary purpose is to provide an intuitive
interface for exploring and interacting with APIs. By integrating Swagger with
Django Rest Framework (DRF), developers can take advantage of the drf-yasg
package to generate Swagger/OpenAPI specifications based on their DRF views
and serializers.
43
Figure 5.11 – Swagger UI
45
a) Configuration
The initial step in the workflow involves configuring pytest-django for the
project. The pytest.ini file is utilized to specify the Django settings module and
define the file patterns to identify the test files. In the provided configuration,
the DJANGO_SETTINGS_MODULE is set to "CoreRoot.settings and the
python_files option specifies the patterns for identifying the test files. This
configuration ensures that pytest-django can discover and execute the tests
correctly.
b) General fixtures
The conftest.py file is a powerful tool in pytest-django for sharing fixtures
across multiple test files. Fixtures provide a way to set up the necessary
environment for each test and provide reusable resources. In the provided
conftest.py snippet, a fixture named "client"is defined. The client fixture returns
an instance of the APIClient from Django’s rest_framework.test module. This
fixture is used to make HTTP requests to the API endpoints during the tests. By
utilizing fixtures, the testing process becomes more efficient, modular, and easier
to maintain.
c) Unit testing
In the unit tests for the Users Django app, the goal is to verify the functionality
of creating regular users and superusers. The code provided demonstrates two test
cases: test_create_user() and test_create_superuser(). The test_create_user()
function tests the creation of a regular user by calling the create_user() method
of the User model. The test passes in the data_user dictionary, which contains
the necessary user data such as username, password, first name, last name, email,
gender, status, and faculty. The assertions in the test validate that the created
user’s attributes match the corresponding values in the data_user dictionary.
Similarly, the test_create_superuser() function tests the creation of a
superuser using the create_superuser() method of the User model. The
data_superuser dictionary provides the required user data for the superuser. The
assertions in this test verify that the created superuser’s attributes match the
values specified in the data_superuser dictionary. Additionally, the test checks if
the user is marked as a superuser and staff member by asserting is_superuser and
is_staff as True.
Both test functions are decorated with @pytest.mark.django_db, which
instructs pytest to create a test database and enable database access for
the tests. This ensures that the tests are performed in an isolated database
environment, preventing interference with other test cases or the production
database. By running these unit tests, developers can validate that the user
creation functionality in the Users Django app is working correctly. These
46
tests provide confidence in the expected behavior of the create_user() and
create_superuser() methods and help identify any potential issues or regressions.
In the unit test for the Project Django app, the objective is to validate
the creation of a project. The provided code includes a single test case:
test_create_project(). The test_create_project() function utilizes the Project
model from the core.project.models module and the user fixture from the
core.fixtures.user module.
1 import pytest
2 from core . fixtures . user import user
3 from core . project . models import Project
4
The user fixture provides a pre-existing user object that will be used as
the author of the project. Within the test, a project is created by calling the
create() method of the Project model. The author parameter is set to the user
fixture, representing the user who created the project. The description field is
also specified with a sample description for the project. To verify the correctness
of the project creation, several assertions are made. The test asserts that the
author attribute of the project object matches the user fixture, ensuring that
the correct user is associated with the project. Additionally, the test verifies that
the description field of the project matches the provided sample description. The
@pytest.mark.django_db decorator is used to instruct pytest to create a test
database and enable database access for this particular test case. This allows
for isolation and ensures that the test operates within a controlled database
environment. By running this unit test, developers can ensure the accurate
creation of projects within the Project Django app. It helps verify that the create()
method of the Project model functions correctly, associating the appropriate
author and storing the provided project description accurately.
In the unit test for the Join Django app, the purpose is to validate the creation
of a join request. The provided code includes a single test case: test_create_join().
The test_create_join() function utilizes the Join model from the
core.join.models module, as well as the user and project fixtures from the
47
core.fixtures.user and core.fixtures.project modules, respectively. The user fixture
provides a pre-existing user object, and the project fixture provides a pre-existing
project object.
Within the test, a join request is created by calling the create() method of the
Join model. The applicant parameter is set to the user fixture, representing the
user who wants to join the project. The project parameter is set to the project
fixture, representing the project to which the user wants to join. The message field
is also specified, containing a sample message expressing the applicant’s interest
and experience. To verify the correctness of the join request creation, several
assertions are made. The test checks that the applicant attribute of the join object
matches the user fixture, ensuring that the correct user is associated with the join
request. Similarly, the test ensures that the project attribute of the join object
matches the project fixture, confirming that the join request is associated with
the correct project. Additionally, the test validates that the message field of the
join request matches the provided sample message. The @pytest.mark.django_db
decorator is used to instruct pytest to create a test database and enable database
access for this particular test case. This allows for isolation and ensures that the
test operates within a controlled database environment.
d) Integration testing
In the integration testing for the Users app, the TestUserViewSet class is
defined, which contains multiple test methods for different endpoints. This class
utilizes the client fixture from the conftest.py file, which is an instance of the
Django REST Framework’s APIClient. The endpoint variable represents the base
URL for the Users API, which is set to /api/user/.
test_list(self, client, user): This test method verifies the behavior of the list
endpoint. The user is authenticated using client.force_authenticate() with the
user fixture. The test sends a GET request to the endpoint and asserts that the
response status code is 200 (HTTP_200_OK). Additionally, it checks that the
count field in the response data is equal to 1.
48
test_retrieve(self, client, user): This method tests the retrieve endpoint for
retrieving a specific user. Similar to the previous test, the user is authenticated,
and a GET request is made to the endpoint with the user’s public ID appended
to it. The response status code is asserted to be 200, and various fields in the
response data are checked for correctness, including the ID, username, and email.
test_create(self, client, user): This test examines the behavior of the create
endpoint. The user is authenticated, but the test attempts to send a POST request
to the endpoint with an empty data payload. The expected response status code is
HTTP_405_METHOD_NOT_ALLOWED, indicating that the create operation
is not allowed for this endpoint.
test_update(self, client, user): This method tests the update endpoint for
modifying a user’s details. The user is authenticated, and a PATCH request is
made to the endpoint with the user’s public ID appended to it. The data payload
contains an updated username. The response status code is asserted to be 200,
and the updated username is checked in the response data.
These integration tests validate the behavior and functionality of the Users
app’s API endpoints. By examining the responses and asserting the expected
results, developers can ensure that the API endpoints function correctly and
provide the intended behavior.
In the integration testing for the Project app, the TestProjectViewSet class
is defined, which contains multiple test methods for different endpoints. This
class also uses the client fixture from the conftest.py file. The endpoint variable
represents the base URL for the Project API, which is set to /api/project.
test_like(self, client, user, project): This test method verifies the behavior of
the like endpoint. The user is authenticated, and a GET request is made to the
endpoint. The response status code is asserted to be 200 (HTTP_200_OK), and
the count field in the response data is checked to ensure it matches the expected
value.
test_retrieve(self, client, user, project): This method tests the retrieve
endpoint for retrieving a specific project. The user is authenticated, and a GET
request is made to the endpoint with the project’s public ID appended to it. The
response status code is asserted to be 200, and various fields in the response data
are checked for correctness, including the ID, description, and author’s ID.
test_create(self, client, user): This test examines the behavior of the create
endpoint. The user is authenticated, and a POST request is made to the endpoint
with a data payload containing the project description and author’s ID. The
response status code is asserted to be 201 (HTTP_201_CREATED), indicating
successful creation, and the response data is checked to ensure the description and
author’s ID match the provided values.
test_update(self, client, user, project): This method tests the update endpoint
49
for modifying a project’s details. The user is authenticated, and a PUT request
is made to the endpoint with the project’s public ID appended to it. The data
payload contains an updated description and author’s ID. The response status
code is asserted to be 200, and the updated description is checked in the response
data.
test_delete(self, client, user, project): This test verifies the behavior of the
delete endpoint. The user is authenticated, and a DELETE request is sent to the
endpoint with the project’s public ID appended to it. The response status code
is asserted to be 204 (HTTP_204_NO_CONTENT), indicating that the project
was successfully deleted.
test_create_anonymous(self, client): This method tests the behavior of the
create endpoint when the user is not authenticated. A POST request is made
to the endpoint with a data payload, and the expected response status code is
HTTP_401_UNAUTHORIZED, indicating that authentication is required.
test_update_anonymous(self, client, project): This test examines the
behavior of the update endpoint when the user is not authenticated.
A PUT request is made to the endpoint with the project’s public ID
appended to it and a data payload. The expected response status code is
HTTP_401_UNAUTHORIZED, indicating that authentication is required.
Code:
50
6 Conclusion
1 Usability and User Experience: Future research can focus on evaluating the
usability and user experience of the social network platform. Conducting
user studies, surveys, and interviews can provide valuable insights into user
satisfaction, ease of use, and areas for improvement. Feedback from students,
mentors, and faculty members can inform iterative design and development
processes to enhance the overall user experience.
2 Advanced Collaboration Features: Expanding the collaboration features of
the platform can be an interesting area for further research. Investigate
the integration of real-time communication tools such as chat or video
conferencing within the application. This would facilitate instant and
seamless communication among project teams, mentors, and faculty members,
promoting efficient collaboration and knowledge sharing.
3 Security and Privacy: As the social network platform handles sensitive
academic information, ensuring robust security and privacy measures is
crucial. Further research can focus on evaluating and enhancing the
platform’s security architecture, implementing data encryption, access
controls, and authentication mechanisms to safeguard user data and maintain
confidentiality.
51
4 Scalability and Performance Optimization: With the growth in user base
and project activities, it is essential to assess the platform’s scalability and
optimize its performance. Investigate techniques such as load testing, caching
mechanisms, and database optimization to ensure that the application can
handle increasing user demands and deliver a responsive and seamless user
experience.
This research has laid the foundation for the digitalization of diploma work
processes through the development of a social network platform. The introduction
of new features, bug fixing, and the deployment of the application on AWS have
enhanced its functionality and usability. However, further research in areas such
as usability, collaboration features, machine learning, security, scalability, and
performance optimization will contribute to the continuous improvement and
evolution of the platform, ultimately benefiting students, mentors, and faculty
members in their diploma work endeavors.
52
BIBLIOGRAPHY
1 Eid, Mohammad I. Social networking, knowledge sharing, and student
learning: The case of university students / Mohammad I Eid, Ibrahim M Al-
Jabri // Computers & Education. — 2016. — Vol. 99. — Pp. 14–27.
2 Mousa, Tareq S. The impact of attitude, subjective norm and information
communications technology on knowledge sharing among academic staff /
Tareq S Mousa, Ammar S Jameel, Abdul Rahman Ahmad // International
Journal of Psychosocial Rehabilitation. — 2019. — Vol. 23, no. 02. — Pp. 704–717.
3 Micari, Marina. Connecting to the Professor: Impact of the Student–
Faculty Relationship in a Highly Challenging Course / Marina Micari,
Patricia Pazos // College Teaching. — 2012. — Vol. 60, no. 2. — Pp. 41–47.
4 Saichaie, Kabir. Representation on college and university websites: An
approach using critical discourse analysis: Ph.D. thesis / The University of Iowa.
— 2011.
5 Zaidieh, Ahmad JY. The Use of Social Networking in Education:
Challenges and Opportunities / Ahmad JY Zaidieh // World of Computer Science
and Information Technology Journal (WCSIT). — 2017. — Vol. 7.
6 Apps for academic success: Developing digital literacy and awareness to
increase usage / Robin Canuel, Erin MacKenzie, Andrew Senior, Nima Torabi //
Education for Information. — 2017. — Vol. 33, no. 3. — Pp. 135–152.
7 Cartledge, Peter. The use of social-networking sites in medical education /
Peter Cartledge, Melissa Miller, Bob Phillips // Medical Teacher. — 2013. —
Vol. 35, no. 10. — Pp. 847–857.
8 Pandey, Nitish. Web application for social networking using RTC /
Nitish Pandey, Doina Bein // 2018 IEEE 8th Annual Computing and
Communication Workshop and Conference (CCWC) / IEEE. — 2018. — Pp. 336–
340.
9 Homola, Martin. Taking Advantage of Web 2.0 in Organized Education (A
Survey) / Martin Homola, Zuzana Kubincova // Conference ICL2009. — 2009.
https://dai.fmph.uniba.sk/ homola/download/papers/icl2009.pdf.
10 An Empirical Analysis of the Antecedents and Performance Consequences
of Using the Moodle Platform / Chiu-Chu Huang, Yi-Ming Wang, Ting-Wen Wu,
Po-An Wang // International Journal of Information and Education Technology.
— 2013. — Pp. 217–221.
11 Digitalization of environmental education is the trend of its modernization
and reform / Konstantin Grevtsov, Olga Kadeeva, Valeria Syritsyna et al. // E3S
Web of Conferences. — 2021. — Vol. 258. — P. 10011.
12 Mentes, Sinan Alper. Assessing the usability of university websites:
An empirical study on Namik Kemal University / Sinan Alper Mentes,
Ali Hikmet Turan // Turkish Online Journal of Educational Technology-TOJET.
53
— 2012. — Vol. 11, no. 3. — Pp. 61–69.
13 Strokov, A. A. Digitalization of education: Problems and prospects /
A. A. Strokov // Vestnik of Minin University. — 2020. — Vol. 8, no. 2. —
P. 15.
14 Godin, Victoria V. Digitalization of Education: Models and Methods /
Victoria V Godin, Anastasia Terekhova // International Journal of Technology.
— 2021. — Vol. 12, no. 7. — P. 1518.
15 Solving problems with group work in problem-based learning: hold
on to the philosophy / Diana HJ M Dolmans, Ineke HA P Wolfhagen,
Cees PM van der Vleuten, Wim HF W Wijnen // Medical Education. — 2001. —
Vol. 35, no. 9. — Pp. 884–889.
16 Social networking and adjustments among international students /
Jingyan Helen Lin, Wei Peng, Misook Kim et al. // New Media & Society. —
2011. — Vol. 14, no. 3. — Pp. 421–440.
17 Kumar, Nitesh. User perception and use of social networking sites by
Sikkim University students / Nitesh Kumar // Education Today. — 2012.
18 Ruiz-Mercader, José. Information technology and learning: Their
relationship and impact on organisational performance in small businesses /
José Ruiz-Mercader, Angel L Meroño-Cerdan, Ramon Sabater-Sánchez //
International Journal of Information Management. — 2006. — Vol. 26, no. 1.
— Pp. 16–29.
19 Dineen, Brian R. Teamxchange: A Team Project Experience Involving
Virtual Teams and Fluid Team Membership / Brian R Dineen // Journal of
Management Education. — 2005. — Vol. 29, no. 4. — Pp. 593–616.
54
Appendix A
55
Figure A.2 – ERD diagram
56