Skip to content

Talent Trade is a platform for exchanging knowledge and skills between people. It connects those who want to learn something new with those willing to share their expertise.

Notifications You must be signed in to change notification settings

CamiloTello002/Talent-Trade

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Talent Trade

Connecting talents for mutual growth and learning.

Talent Trade Logo

Talent Trade is a platform for exchanging knowledge and skills between people. It connects those who want to learn something new with those willing to share their expertise. Users can create detailed profiles with contact information, photo, specialty, and a brief personal description, facilitating connections between people with complementary interests.

Motivation

There are existing applications that allow you to connect with people for some specific purpose. Take Tandem as an example for language exchange or Couchsurfing for connecting travelers with hosts.

Our application aims to pair up people from a wide gamut of fields and specialties and allow for interaction between them so that they can exchange their knowledge and, additionally, see the chance of building a connection.

We make sure you're paired up with the right person by making sure your interests and specialties match with the other individual's interests and specialties.

Use case example

Catriel knows HTML, CSS, and JavaScript, but he wants to improve his English. Owen is a native English speaker who wants to learn web development. They both hear about Talent Trade, give it a try and meet on that platform. Given that their specialties and interests match, they arrange a session to exchange knowledge, benefiting each other.

Features

Smart search

You have the possibility of getting suggestions about exchange partners with complementary interests

Rating system

As soon as you've finally exchanged some knowledge with your exchange partner, you have the chance to rate them and express what that interaction was like.

Customizable profile

You can let others know about your personality! You can tell what your interests are, your own avatar, and a section that tells about you

Chat rooms!

When you're paired up with your exchange match, you can send messages to each other and let the communication flow. This chat is open up to 7 days.

Tech stack

The technologies used to build this project are the following:

Frontend

For our frontend, we opted for Next.js, which made routing pretty straightforward, and Tailwind CSS, which has predefined classes and lifts off styling overhead

Next.js Tailwind CSS

Backend

For the backend side, we opted for Express.js (a lightweight framework good enough to get the work done) and TypeScript for enforcing correct type matching and custom interfaces for our database models. Mongoose came in handy for querying data to the database with built-in functions.

Express.js TypeScript Mongoose

Database

For persistent data storage, we opted for MongoDB with MongoDB Atlas, which allows us to store data in the form of documents; pretty flexible for data schemas.

Mongoose

Getting started

Before you begin, make sure you have the following installed:

Prerrequisites

Installation

1. Clone the repository:

git clone https://github.com/No-Country-simulation/c19-05-ft-node-react.git

2. Go to backend directory and install dependencies. If you have a package manager different from NPM, you can run yarn install for Yarn or pnpm install for pnpm instead of npm install.

cd backend
npm install

3. Make a .env file by taking the template provided in .env.template

cp .env.temmplate .env

4. Fill the necessary data in your .env file. You can use a code editor such as Visual Studio Code, Sublime Text, or Vim.


# base datos
DATABASE_URL = 

FRONTEND_URL =

SERVER_URL =

# nodemialer
SMTP_HOST = 
SMTP_PORT = 
SMTP_USER = 
SMTP_PASS = 


PORT = 4000


COOKIE_SECRETKEY = cookiesecret
JWT_SECRET = jwtsecret

BCRYPT_SALT = 10

#Gmail
GOOGLE_CLIENT_ID = 
GOOGLE_CLIENT_SECRET = 
GOOGLE_CALLBACK_URL = 


#Upload Avatar
CLOUDINARY_URL=
CLOUDINARY_NAME = 
CLOUDINARY_KEY = 
CLOUDINARY_SECRET =

You can get the database URL either by your local server (might look something like mongodb://localhost:27017) or a database created in your MongoDB Atlas cluster (which might look something like mongodb+srv://username:[email protected]/?retryWrites=true&w=majority&appName=Cluster0)

Make sure you add the correct URI for the frontend so that there are no CORS issues. Trying it locally, we can add http://localhost:3000 as our URI for the frontend.

Regarding to the SMTP_ variables, you can create an account on Mailtrap and you get the credentials from there.


5. Run the backend

npm run dev

If you run it locally, you'll get your backend running on http://localhost:PORT/, where PORT is the port you defined on your .env file. To get a quick overview of the available endpoints, you can refer to the API documentation.


6. Open another terminal on the root of the project. If you opened the project with Visual Studio Code, you can open another terminal on the button at the top right and you'll get located on the root of it, just as indicated on the image below:

new terminal

7. Go to the frontend folder and install dependencies. If you have a package manager different from NPM, you can run yarn install for Yarn or pnpm install for pnpm instead of npm install.

cd front
npm install

8. Run the frontend

npm run dev

9. Open the http://localhost:3000 URL on your web browser.

App URL

And voilà! You have your application running. :)

App working

About

Talent Trade is a platform for exchanging knowledge and skills between people. It connects those who want to learn something new with those willing to share their expertise.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published