Skip to content

Product Definition

Jonathan Betancur edited this page Aug 14, 2024 · 3 revisions

Section 1. Project Overview

1.1 Problem Description and Software Solution

The company SoftServe requested a Tech Learning Route Designer.

Lifelong and autonomous learning is one of the main characteristics of the technology industry. It is possible to find almost all the necessary resources on the internet to learn a programming language, framework, technology, or role; however, finding curated content, organizing it beyond a list of links, evaluating it, or sharing it is not as simple. This project seeks to develop a collaborative platform for the construction, evaluation, curation, organization, and dissemination of learning routes oriented toward the technology industry.

We plan to solve this by developing a web application using a Javascript framework like React for the frontend and a Python-based framework such as FastAPI or Django for the backend.

1.2 Project Members and Roles

A table listing the team members, a contact method, and the role they play (developer, architect, analyst, tester, or SCRUM Master).

Name Email Role
Esteban Vergara Giraldo evergarag@eafit.edu.co Developer, Architect
Miguel Ángel Cock Cano macockc@eafit.edu.co Tester
Jonathan Betancur Espinosa jbetancur3@eafit.edu.co Developer
Moises David Arrieta Hernandez mdarrietah@eafit.edu.co Analyst
Pablo Baez Santamaria pbaezs@eafit.edu.co UX/UI, Scrum Master

1.3 Target Audience and Context

Target Audience:

  • Software Developers and Programmers:

    • Description: Professionals in the software industry looking to improve or update their technical skills in programming languages, frameworks, and emerging technologies. These users have prior experience in software development and are familiar with advanced technical concepts.
    • Interaction with the system: They use the platform to access personalized and curated learning routes that allow them to learn more efficiently and in an organized manner. They can also contribute to the creation and curation of routes, share resources, and evaluate content.
  • Technology Students:

    • Description: Students in fields related to computer science, software engineering, or similar areas who seek to complement their formal education with practical knowledge in specific technologies.
    • Interaction with the system: They access learning routes to guide their self-study, participate in evaluations and interactive activities, and collaborate with other students in exchanging resources and knowledge.
  • Teachers and Mentors:

    • Description: Professionals dedicated to teaching technologies who seek structured resources to support their students' learning. These users have teaching experience and are looking for tools to facilitate the learning process.
    • Interaction with the system: They use the platform to create and share learning routes with their students, evaluate their students' progress, and provide personalized feedback and guidance.
  • Content Curators:

    • Description: Experts in various technologies who collaborate in selecting and evaluating the content available on the platform to ensure its quality and relevance.
    • Interaction with the system: They participate in the creation, organization, and curation of learning routes, evaluating and selecting resources that meet high-quality standards.

System Context: Interaction with hardware and software components such as

  • Frontend (Client):

    • Hardware: End-user devices, which may include PCs, laptops, tablets, and smartphones.
    • Software: Modern web browsers compatible with React (Google Chrome, Mozilla Firefox, Safari, etc.).
  • Backend (Server):

    • Hardware: Cloud servers that support the execution of web applications. These servers must be scalable to handle multiple simultaneous requests.
    • Software: Frameworks such as FastAPI or Django, relational or NoSQL databases (depending on the project's choice), and authentication and security services.
  • External Systems:

    • Third-Party APIs: Educational content APIs.
    • Evaluation and Certification Platforms: External tools that could be integrated to assess user progress and issue certifications. (Optional, probably will not be integrated)

Context Diagram image

1.4 Interaction Process Description

1. Learning Routes User This includes Software Developers, Programmers, and Technology Students.

  1. Registration and Login:

    • The user registers on the platform or logs in using an authentication system.
  2. Profile Configuration:

    • The user completes their profile by indicating their current knowledge level in various technologies, what they want to learn, the time available, and their content preferences (videos, readings, exercises, etc.).
  3. Learning Route Generation:

    • Based on the parameters entered, the platform automatically generates a personalized learning route that includes relevant and sequential content.
  4. Content Consumption:

    • Access the resources (videos, readings, exercises) provided in the generated route.
    • Mark completed sections.
  5. Evaluation and Feedback:

    • Complete interactive assessments (quizzes, coding exercises) to measure their understanding.
    • Provide feedback on the quality and usefulness of the content.
  6. Progress Monitoring:

    • View their progress on the route, receive additional recommendations, or adjust the route according to new preferences.

2. Content Managers This includes Teachers, Mentors, and Content Curators.

  1. Registration and Login:

    • The content manager registers or logs in.
  2. Content Creation and Curation:

    • Upload or link external educational resources (videos, readings, exercises) and classify them according to the technologies taught, required skills, difficulty level, and other relevant parameters.
    • Update or adjust the content according to user needs or received feedback.
  3. Parameter Assignment:

    • Define necessary technologies, skills, and prior knowledge levels that the user must have to access the content.
  4. Content Usage Monitoring and Evaluation:

    • Monitor content usage through a control panel.
    • Provide recommendations and updates based on usage statistics and received feedback.

Flow Diagrams

softserve_user_flow

1.5 Glossary of Terms

  1. Web Application: A program that users can access and use through a web browser on devices like computers, tablets, or mobile phones. Web applications are interactive and run on a server.

  2. Backend: The "back" part of an application that handles business logic, processes, and data management. It is responsible for connecting the frontend and the database, ensuring everything works correctly, even though it is not visible to the end user.

  3. Frontend: The "front" or visible part of a web application with which users directly interact. It includes everything the user sees and uses, such as buttons, forms, and graphics. It is developed using technologies like HTML, CSS, and JavaScript.

  4. FastAPI: A Python framework that allows creating APIs (Application Programming Interface) quickly and efficiently. It is known for its high performance and ease of use, ideal for developing web services that respond to user requests.

  5. Django: A Python web framework designed to facilitate the rapid development of secure and scalable applications. It provides many pre-built tools, such as authentication and database management, allowing developers to focus on specific aspects of their project.

  6. React: A JavaScript library for building dynamic and interactive user interfaces. React allows the creation of reusable components that efficiently manage the application's view, improving the user experience.

  7. Framework: A set of tools and libraries that provide a basic structure for developing software, making the developer's job easier and faster. Frameworks include predefined design rules and patterns that help build applications more quickly and with fewer errors.

  8. API: A set of rules and protocols that allows different applications to communicate. APIs enable the integration of external functionalities into an application, such as payment services or social networks.

  9. Authentication: The process of verifying the identity of a user attempting to access a system. It is commonly done through a username and password but can also include more advanced methods like two-factor authentication.

  10. Content Curation: The process of selecting, organizing, and presenting educational content in a way that is relevant and useful to users. Content curators ensure that the material available on a platform is of high quality and well-structured.

  11. Learning Route: A study itinerary that guides the user through a series of resources and activities to acquire a specific skill or knowledge. Routes can be personalized according to the user's needs and preferences.

  12. Interactive Evaluation: Tools and activities within a learning platform that allow measuring the knowledge and skills acquired by the user, such as quizzes and practical exercises.

  13. Scrum Master: A role in the agile Scrum methodology, responsible for guiding the development team, ensuring that the proper processes are followed, and removing any obstacles that may hinder the project's progress.

  14. UX/UI: UX (User Experience) refers to how a user feels when interacting with a product or service. UI (User Interface) is the graphic design of the interface through which the user interacts with that product. Both aspects aim to improve usability and user satisfaction.

  15. Relational Databases: Data storage systems that organize information in tables with rows and columns. They use the SQL language to manage and manipulate data, allowing complex queries and relationships between different tables.

  16. NoSQL: A type of database that does not follow the traditional relational model. It is more flexible and scalable, designed to handle large volumes of distributed and unstructured data, commonly used in applications requiring high availability and performance.

  17. Third-Party APIs: APIs provided by external services that can be integrated into an application to extend its functionality, such as integrating a payment system or connecting to social networks.

Section 2. Needs Assessment

2.1 Needs Assessment

Techniques chosen for the elaboration and tender of requirements:

Interviews: Interviews are meetings that can be virtual or face-to-face, where a series of questions are asked to obtain the corresponding answers in the context of a specific problem domain to tender the system's functional and non-functional requirements through user stories.

Meetings: A scheme of periodic meetings will be used to inform the development progress, correct problems or discrepancies between the user's requirement and the developed system if necessary, with the aim of guiding the entire solution toward the correct fulfillment and satisfaction of requirements.

To view the sessions: Visit the page: Ceremony Evidence

2.2 Exploration of Background and Similar Applications

Coursera Udemy edX
Coursera Udemy edX
image image image
Coursera offers a wide variety of courses and specializations, but its approach is more generalized. Our platform stands out for deep personalization based on analyzing the interactions and individual intelligences of each user, allowing the creation of unique learning routes tailored to each need. Udemy is a massive online course platform, but its approach is more focused on the supply and demand of courses. Our approach differs in that learning is more personalized, as each person has their own pace, and the routes are shaped to individual intelligences, not mass production. edX offers high-quality courses, but its structure tends to be rigid and, therefore, not very flexible. Our approach is based on increasing flexibility to improve the user experience by offering a more immersive and engaging experience.

Section 3. User Story Mapping and Product Backlog

3.1 Story Mapping

image https://www.canva.com/design/DAGNmQo9cV4/70Tj-X6EjL4qQvjo5Bt2OQ/edit? utm_content=DAGNmQo9cV4&utm_campaign=designshare&utm_medium=link2&utm_source=sharebutton

3.2 Product Backlog

image image

https://github.com/users/QuitoTactico/projects/2

Section 4. Sprint Backlog

4.1 Sprint Backlog

Detail the user stories assigned for the next Sprint (Sprint 1), specifying acceptance criteria, the team member responsible for the story, tasks to be completed to accomplish the user stories, and effort estimation.

https://github.com/users/QuitoTactico/projects/2

Section 5. Initial Prototypes

5.1 Initial Prototypes

https://softserve-academy-c8a6e8.webflow.io Landing Page image Courses Page image Login/Sign Up image image User Page image

To detail the User Journey we used an additional tool: Relume.io, it allowed us to be more complex and detailed on the website. Screenshot 2024-08-14 at 3 51 05 PM

Screenshot 2024-08-14 at 3 51 22 PM