Skip to content

SaraGMatos/skillmatch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo

About SkillMatch


Introducing SkillMatch, a web-based app that provides a platform for connecting learners and teachers. With SkillMatch, you can create a personalised profile, list the interests you want to explore, and showcase the skills you're ready to teach. Our search tool helps you find the perfect match for learning or teaching. You can easily discuss and arrange learning sessions with our live chat feature.

Built With

  • React
  • Node
  • Supabase
  • Socket.IO

Brief Project Insight & Members

This full-stack project was planned, designed and developed in just 8 days during the final project phase at the Northcoders Software Development bootcamp.

Name Links
Dorota Szubert LinkedIn | Github
Fabian Fernandez LinkedIn | GitHub
Jack Brown LinkedIn | GitHub
Muhammad Sallu LinkedIn | GitHub
Sara Matos LinkedIn | GitHub

Getting Started

To get started with SkillMatch, the hosted version of our web-based app can be found at: https://skillmatched.netlify.app/. After creating an account and setting up a profile, you're good to go finding a learning or teaching partner!

Features

Users can:

  • Sign up with a new account/sign in with an existing account.
  • Modify User Profile by changing profile pic, adding skills you can teach and interests you can learn.
  • View matches to exchange teaching and learning skills with one another.
  • View learning opportunities with another user to learn a new skill.
  • Filter matches and learning opportunities by skill.
  • Connect to another user by username.

How to Run Locally

  1. Node Installation
  • Ensure you have Node.js version 21 or higher installed on your system. If you do not have it installed, please follow the instructions here.
  1. Clone the repository
  • Download the project files by copying and running the following command:
  git clone https://github.com/SaraGMatos/skillmatch.git
  1. Install Dependencies
  • Navigate to the project directory and run npm install to install the required packages and dependencies.
  1. Supabase Account and Project
  • Create a Supabase account and a new project. Note down the project url and api key.
  1. Env File Creation
  • Navigate to /skillmatch/client/ and create a .env file containing the following variables:
VITE_REACT_APP_SUPABASE_URL=https://your_project_url.supabase.co
VITE_REACT_APP_SUPABASE_KEY=your_api_key
  1. Authentication Setup
  • In Supabase, navigate to the "Authentication" section within the dashboard to configure settings enabling user login via email.
  1. Creating Tables
  • In Supabase, navigate to the "Table Editor" section and create these tables:

Users Table

user_id time_created username avatar_url description showcase
Primary Key Timestamptz Varchar Text Text Text

Chats Table

chat_id chat_name
Primary Key Text

Messages Table

message_id time_created author message chat_id
Primary Key Timestamptz Foreign Key to Users.user_id Text Foreign Key to Chats.chat_id

Reviews Table

review_id time_created reviewer_id reviewee_id message rate
Primary Key Timestamptz Foreign Key to Users.user_id Foreign Key to Users.user_id Text Int2

Skills Table

skill_id skill_name description
Primary Key Varchar Text

UserChats Table

user_chats_id chat_id user_id
Primary Key Foreign Key to Chats.chat_id Foreign Key to Users.user_id

UserSkills Table

user_skills_id user_id skill_id
Primary Key Foreign Key to Users.user_id Foreign Key to Skills.skill_id

UserInterests Table

user_interests_id user_id skill_id
Primary Key Foreign Key to Users.user_id Foreign Key to Skills.skill_id

  1. Creating Functions
  • In order for this project to run correctly, there are Supabase functions that need creating by navigating to the "Database" section, then to the Functions section and clicking "Create New Function". The included doc here will contain the name and corresponding code for each function needed.
  1. Running the project
  • Run the following commands to start the project:
cd client
npm run dev
  1. Signing In
  • Sign up to create an account and you're good to go!

Contributions

This project is open to contributions. Feel free to submit a pull request if you would like to make a suggestion or raise an issue or problem with the code.

Acknowledgments

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5