Project Requirements
Executive Summary
This project aims to enhance the Skillcity Institute’s Skillcity Institute platform by incorporating AI-driven automation to streamline user interactions and minimize human resource requirements. The platform will enable students and young professionals to build their career pathways by providing access to job shadowing, internships, project-based learning, mentorship opportunities, and curated learning resources. Organizations will be able to post job and project-based learning opportunities while managing engagement with students. The key functionalities include:
- User Registration & Profiles: Users can create and manage profiles that highlight their skills, interests, and career goals.
- Badges & Achievements: A gamified ranking system tracks progress and achievements through badges.
- Project-Based Learning: Organizations can post project-based learning opportunities for students, who can submit their work and receive feedback from mentors.
- Resource Library: A searchable repository of educational materials, including videos, articles, and guides, tailored to career development.
Project Glossary
- Admin: A system administrator responsible for managing platform content, user accounts, and system functionalities.
- Badge System: A gamified ranking system where users earn badges based on accomplishments such as job shadowing, project completions, and mentorship engagements.
- Event Calendar: A scheduling feature that displays workshops, webinars, networking events, and other relevant opportunities.
- Job Shadowing: Short-term career exploration experiences where students observe professionals in a workplace setting.
- Mentor: An experienced professional who provides career guidance to students. Matched through an AI-driven recommendation system.
- Mentorship Matching: An algorithm that pairs students with suitable mentors based on skills, interests, and goals.
- Opportunities Board: A centralized hub where students can explore and apply for job shadowing, internships, and project-based learning experiences.
- Organization: A company, nonprofit, or educational institution that posts career opportunities and project-based learning experiences.
- Project-Based Learning: Hands-on learning experiences where students complete real-world projects to gain practical skills.
- Resource Library: A collection of curated learning materials, including articles, videos, and career guides, searchable by keyword and filters.
- Search & Filter Options: A feature allowing users to narrow down opportunities based on role, industry, location, and other criteria.
- Student Profile: A user’s personalized profile containing their skills, interests, career goals, and achievements.
- User: Any individual using the platform, including students, mentors, and organizational representatives.
- Work-Based Learning: Internships and job placements that provide students with hands-on experience in a professional setting.
User Stories
Epic 1 - User Registration and Profiles
US 1.01 - [FRONTEND] Account Creation Form (3 pts) (Will Do)
As a user, I want to log in using my username and password, Google account, Facebook profile, or Instagram login so that I can access the platform easily.
Acceptance Tests:
- The login page contains options for username/password: Google
- The login form validates input (e.g., required fields, correct formats, password constraints)
- Users receive appropriate error messages for invalid credentials
- Users are redirected to the dashboard upon successful login
US 1.02 - [FRONTEND] User Profile Creation (3 pts) (Will do)
As a user, I want to create a profile that includes my interests, skills, and career goals so that my experience on the platform is personalized.
Acceptance Tests:
- The profile creation page includes fields for interests, skills, and career goals.
- Required fields must be filled before submission.
- The profile information is saved and displayed correctly upon submission.
Epic 2 - Opportunities Board
US 2.01 - [FRONTEND] Job Shadowing Opportunity Creation (3 pts)
As an organization, I want to create and manage job shadowing opportunities so students can sign up to observe a typical day in a specific role.
Acceptance Tests:
- A form is available for organizations to create job shadowing opportunities
- The form includes the required fields (title, description, industry, task details, task description etc.)
- Organizations can only submit valid and complete forms.
- A success message appears upon successful creation.
- The opportunity is added to the list of available job shadowing experiences
US 2.02 - [FRONTEND] Job Shadowing Exploration(3 pts) (Will Do)
As a user (employee or candidate), I want to explore and sign up for job shadowing opportunities to gain insights into specific roles.
Acceptance Tests:
- The job shadowing page displays a list of available opportunities.
- Users can click on an opportunity to view details.
- A confirmation message appears upon successful signup.
- Users receive a notification of their signup status.
US 2.03 - [FRONTEND] Work-Based Learning Opportunities (3 pts) (Will Do)
As an organization, I want to post opportunities for internships and jobs so that students can gain hands-on experience.
Acceptance Tests:
- A form is available for organizations to post internships and jobs
- The form includes required fields (position, company, description, etc.)
- Organizations can only submit valid and complete forms.
- A success message appears upon successful posting.
- The opportunity is added to the list of available jobs and internships.
US 2.04 - [FRONTEND] Search and Filter Options (3 pts)
As a user, I want to search and filter opportunities by role, industry, or location so that I can find relevant experiences quickly
Acceptance Tests:
- A search bar allows users to search for opportunities by keyword.
- Dropdown filters for role, industry, and location are available.
- The results update dynamically based on selected filters.
- Users can reset filters to see the full list again.
US 2.05 - [FRONTEND] Event Calendar (User) (2 pts)
As a user, I want to view a calendar highlighting all my workshops, webinars, and networking events so that I can plan effectively. (Could Do)
Acceptance Tests:
- The calendar displays all workshops, webinars, and networking events the user has signed up for.
- Clicking on an event displays details such as date, time, and description.
- Users can filter events by category.
US 2.06 - [FRONTEND] Event Calendar (Organizer) (2 pts)
As an organizer, I want to view a calendar that includes all my hosted webinars and events so that I can manage them efficiently. (Could Do)
Acceptance Tests:
- The organizer dashboard includes an event calendar.
- The calendar displays all events hosted by the organizer.
- Clicking on an event displays details such as attendee list, date, time, and description.
- Organizers can filter events by type.
- Organizers can edit or cancel events from the calendar.
Epic 3 - Mentorship Connection
US 3.01 - [BACKEND] Mentor-Mentee Matching (3 pts) (Should do)
As a student, I want to be matched to a mentor based on my interests and goals so that I receive personalized guidance.
Acceptance Tests:
- The system retrieves student profile data (interests, skills, goals).
- The matching algorithm assigns relevant mentors based on profile data.
- The assigned mentor appears on the student’s profile.
- An error message is displayed if no suitable mentor is found.
US 3.02 - [FRONTEND] One-on-One Messaging (Wont Do)
As a student, I want to message my mentor one-on-one so that I can ask questions and seek advice privately.
Acceptance Tests:
- After sending a message, the message should appear in both the student's and mentor's chat window
- The chat history is displayed correctly
- The system notifies users when they recieve a new message
- An error message is displayed if the message isn't sent
Epic 4 - Badges & Achievements
US 4.01 - [FRONTEND] Badge System (3 pts) (Should Do)
As a user, I want to see the ranks and badges I’ve achieved after completing certain tasks, participating in job shadowing, or finishing projects so that I can track my progress.
Acceptance Tests:
- The profile page displays earned badges.
- Badges are awarded based on pre-defined criteria (e.g., completing a job shadowing session).
- The system notifies users when they earn a new badge.
- Users can view their badge history.
US 4.02 - [FRONTEND] Progress Tracking (2 pts) (Could Do)
As a user, I want to view my badges and achievements on my profile so that I can showcase my accomplishments.
Acceptance Tests:
- The profile page includes a section for displaying earned badges and achievements.
- Users can click on a badge to view how it was earned.
- The system updates the profile page dynamically when a new badge is earned.
- Users receive a notification when new achievements are added to their profile.
Epic 5 - Project and Problem-Based Learning
US 5.01 - [FRONTEND] Project Listings (Organizer) (2 pts) (Could Do)
As an organizer, I want to post project-based learning opportunities for students so that they can gain practical experience
Acceptance Tests:
- A form is available for organizers to create project-based learning opportunities.
- The form includes required fields (title, description, skills needed, deadline, etc.).
- A success message appears upon successful posting
- The opportunity is added to the list of available projects.
US 5.02 - [FRONTEND] Project Listings (Student) (2 pts) (Could Do)
As a student, I want to browse project-based learning opportunities from potential employers so that I can develop my skills.
Acceptance Tests:
- The project listing page displays all available project-based learning opportunities.
- Users can filter projects based on industry, skills required, and deadline.
- Clicking on a project displays detailed information.
US 5.03 - [FRONTEND] Submission and Feedback (Student) (2 pts) (Could Do)
As a student, I want to submit my project work for grading and feedback from mentors so that I can improve my work.
Acceptance Tests:
- A submission form allows students to upload their project work.
- Students receive a confirmation message upon successful submission.
- Mentors are notified of new submissions.
US 5.04 - [FRONTEND] Submission and Feedback (Mentor) (2 pts) (Could Do)
As a mentor, I want to grade and provide feedback on student submissions so that I can help them grow.
Acceptance Tests:
- Mentors can access submitted student projects.
- Mentors can provide feedback and assign grades.
- Students receive notifications when feedback is provided.
- Feedback and grades are stored in the database for future reference.
Epic 6 - Resource Library
US 6.01 - [FRONTEND] Curated Resources (4 pts) (Will Do)
As a student, I want to search for articles, videos, guides, job shadowing, and project-based learning resources by keyword so that I can find relevant materials quickly.
Acceptance Tests:
- A search bar allows users to search for resources using keywords.
- The system displays relevant articles, videos, guides, and other materials.
- Users can click on a resource to view its full details.
- The system provides appropriate feedback when no resources match the search criteria.
US 6.02 - [FRONTEND] Search Functionality (Student) (2 pts) (Should Do)
As a student, I want to search for resources using filters like topic, format, or difficulty so that I can locate what I need.
Acceptance Tests:
- A filter panel is available for selecting topics, format, and difficulty.
- The resource list updates dynamically based on selected filters.
- A reset button clears all filters and shows the full list of resources.
US 6.03 - [BACKEND] Search Functionality (Admin) (2 pts) (Should Do)
As an admin, I want to search and manage the resources available to students so that I can ensure the library stays up-to-date.
Acceptance Tests:
- Admins can filter resources by topic, format, and difficulty.
- Admins can edit or remove outdated resources.
- Changes made by admins are reflected in the student-facing resource library.
- The system provides appropriate error messages when an invalid action is performed.
Epic 7 - Change Site Name
US 7.01 - [BACKEND] Organizer Provides Feedback (2 pts) (Won't Do)
As an organizer, I want to provide feedback on student projects and job shadowing experiences so that students can learn from their efforts.
Acceptance Tests:
- The backend allows organizers to submit feedback on students' activities.
- The feedback is stored in the database and linked to the student' s profile.
- The feedback appears on the student’s project history page.
US 7.02 - [FRONTEND] Students View Feedback (2 pts) (Won't Do)
As a student, I want to receive and view feedback on my projects and job shadowing experiences so that I can improve.
Acceptance Tests:
- The student’s profile page includes a section for feedback.
- Feedback is retrieved from the backend and displayed correctly.
- Students receive notifications when new feedback is available.
- The system prevents unauthorized users from viewing another student's feedback.
MoSCoW
Must Have
- US 1.01 As a user, I want to log in using my username and password, through my google login so that I can access the platform easily
- US 1.02 As a user, I want to create a profile that includes my interests, skills, and career goals so that my experience on the platform is personalized
- US 6.03 As an admin, I want to search and manage the resources available to students so that I can ensure the library stays up-to-date.
- US 6.01 As a student, I want to search for articles, videos, guides, job shadowing, and project-based learning resources by keyword so that I can find relevant materials quickly.
- US 3.01 As a student, I want to be matched to a mentor based on my interests and goals so that I receive personalized guidance
- US 2.03 As an organization, I want to set up opportunities for internships and jobs so that students can gain hands-on experience.
- US 2.02 As a user (employee or candidate), I want to explore and sign up for job shadowing opportunities so that I can gain insights into specific roles.
Should Have
- US 4.01 As a user, I want to see the ranks and badges I’ve achieved after completing certain tasks, participating in job shadowing, or finishing projects so that I can track my progress.
- US 5.01As an organizer, I want to post project-based learning opportunities for students so that they can gain practical experience.
- US 5.02 As a student, I want to browse project-based learning opportunities from potential employers so that I can develop my skill
- US 6.02 As a student, I want to search for resources using filters like topic, format, or difficulty so that I can locate what I need.
- US 2.04 As a user, I want to search and filter opportunities by role, industry, or location so that I can find relevant experiences quickly.
Could Have
- US 4.02 As a user, I want to view my badges and achievements on my profile so that I can showcase my accomplishments
- US 5.03 As a student, I want to submit my project work for grading and feedback from mentors so that I can improve my work.
- US 5.04 As a mentor, I want to grade and provide feedback on student submissions so that I can help them grow.
- US 2.06 As an organizer, I want to view a calendar that includes all my hosted webinars and events so that I can manage them efficiently
- US 2.05 As a user, I want to view a calendar highlighting all my workshops, webinars, and networking events so that I can plan effectively.
Won't Have
- US 3.02 One-on-One Messaging: As a student user, I want to be able to message my mentor one on one
- US 7.01 As an organizer, I want to provide feedback on student projects and job shadowing experiences so that students can learn from their efforts.
- US 7.02 As a student, I want to receive and view feedback on my projects and job shadowing experiences so that I can improve and grow.
Similar Products
- Provides young people from traditional schools a way to discover career pathways.
- We can refer to their e-portfolio to see a good way for user to demonstrate their skills.
- Tallo is an end-to-end ecosystem for students, job seekers, and customers.
- Client wants an app very similar to this but have the opportunity list from country = Canada.
- Tallo is based out of the US.
- Tallo offers a similar service that we are trying to provide in terms of profile structure and managing a user's career goals. We can get ideas on how to effectively manage activities related to a user's career goals and give users an all-in-one place to manage their career goals.
- Uptree is a career network for students and young professionals.
- Uptree is based out of the UK.
- Uptree has pages for listing and filtering opportunities that we can use as reference.
- Xello is a career exploration platform for students and young professionals.
- Xello has a user friendly interface. We can use it fas reference for the e-portfolio page and the career path page.
- Magnet careers is a platform that connects Canadians to opportunities (grants, subsidies, exports, trade programs, and unique recruiting opportunities).
- We can use this as a reference for the opportunity list page.
- Forage is a platform for job shadowing by big companies of the world.
- We can use this a reference to build our job shadowing system
- A career platform that connects students with employers for jobs, internships, and networking opportunities.
- Can provide insights into structuring job postings, user profiles, and employer interactions.
- A recognition and rewards platform that gamifies achievements through a badge system.
- Reference for designing the badge and achievement tracking system.
Open-source Projects
- Vutuv is a free and fast career network. More focused on the exchange of contact information and the rating of skills.
- We can use Vutuv as a reference when designing the profile page for users.
- Diaspora pioneered the concept of aspects, which means you can organize your contacts according to their role in your life
- We can refer to their dashboard structure
- An open-source system for issuing and displaying digital badges based on achievements.
- Can be used to implement the badge system for tracking user progress.
- The open-source learning platform behind edX, offering courses and tracking learner progress.
- Can provide insights into how to organize and present educational content for career development.
- A real-time messaging system for integrating chat functionalities.
- Can be referenced if one-on-one messaging is added in future versions.
Technical Resources
Backend: Django
- Django (help with developing the backend, use it when we don't know how to implement certain function in Django)
Deployment: Docker + Docker-compose + GitHub Actions
- Docker (help with deploying the website, use it when we want to learn about how to deploy our website at the end of the project)
- GitHub Actions (help with setting up CI/CD pipelines, use it when we want to automate testing and deployment workflow)
Frontend: Next.js
- Next.js (help with developing the frontend, use it when we need reference on implementing the ui)
Infrastructure: Cybera
- Cybera (help with cloud hosting, use it when we deploy our website)