Skip to content

samarthhapse/sarthi

Repository files navigation

Sarthi - Your Pathway to Expert Assistance

Sarthi is an innovative online platform designed to bridge the gap between junior novices and seasoned experts across various industries. Whether you're a student looking for guidance, a budding professional seeking career advice, or an individual encountering technical hurdles, Sarthi is here to connect you with experienced mentors from around the globe.

💻 Tech Stacks

          

-> Key Features <-

  • Bug Solving Encountered a stubborn bug in your code that's impeding your progress? Fear not! With Sarthi, you can seek assistance from experienced developers who can help you troubleshoot and debug your code efficiently.

  • Tech Career Assistance Navigating the complex landscape of a tech career can be daunting, especially for beginners. Sarthi provides a platform where you can seek guidance on career paths, skill development, job opportunities, and industry insights from seasoned professionals.

  • Academic Support Struggling with a challenging academic concept or assignment? Sarthi offers a supportive environment where you can connect with knowledgeable individuals who can provide clarity, guidance, and assistance with your academic endeavors.

Step-by-step building guide:

Note: For each step write frontend, backend code, store data in DB, and then move forward to the next step

Step 1:

Create login and signup pages for juniors and seniors

  • Data to get from juniors/students: name, email, phone
  • Data to get from seniors/experts: name, expertise, field, college, job title

Frontend:

  • Create login and signup UI pages for juniors and seniors
  • Include form fields to capture required data
  • Implement form validation for input fields

Backend:

  • Create endpoints for user authentication (login and signup) for both juniors and seniors
  • Implement validation and authentication logic
  • Store user data in the database

Database:

  • Design database schema to store user information (juniors and seniors)
  • Create tables for juniors and seniors with appropriate fields

Step 2:

After junior/student's login, they must get 3 fields to choose:

  • Bug solving
  • Tech career assistance
  • Academic support

Frontend:

  • Implement UI for the selection of assistance fields after junior login

Backend:

  • Update the user profile to include the selected assistance fields
  • Handle user preferences and choices in the backend

Step 3:

  • List all the experts/seniors who have registered on the website with their detailed info

Note: Get the data of registered experts/seniors from the DB

Frontend:

  • Create a page to display a list of registered experts/seniors with their details

Backend:

  • Implement logic to fetch and retrieve registered experts/seniors from the database

Step 4: (Chats)

  • Create a chatting functionality for selected expert and the junior

Note: Here they will discuss the problem and the amount of fees required to solve the problem

Frontend:

  • Implement a chat interface for communication between juniors and selected experts

Backend:

  • Develop WebSocket or HTTP endpoints to handle real-time messaging between users
  • Store chat messages in the database for future reference

Step 5: (Payment Gateway)

  • Integrate a payment gateway for pre-payment

Frontend:

  • Implement UI for initiating payment for expert assistance

Backend:

  • Integrate payment gateway APIs for processing payments
  • Handle payment status and update user profiles accordingly

Step 6: (Meet)

  • Provide them with an option to conduct an online meeting to solve the problem

Frontend:

  • Implement UI for scheduling and conducting online meetings between juniors and experts

Backend:

  • Develop functionality for scheduling and managing online meetings
  • Integrate video conferencing APIs for real-time communication

Step 7:

  • Get the final payment and feedback from the junior

Frontend:

  • Implement UI for confirming final payment and collecting feedback from juniors

Backend:

  • Handle payment confirmation and feedback submission logic
  • Update user profiles and records based on payment completion and feedback

Project Title

A brief description of what this project does and who it's for

Installation

Creating a Fork of the Repo and Clonning

1 . Clone the repository :

git clone https://github.com/samarthhapse/sarthi 

2 . Navigate to the project directory :

cd sarthi 

3 . Add git remote upstream throught the terminal navigating to the profile file:

git remote add upstream https://github.com/samarthhapse/sarthi 

To get started with Sarthi frontend, follow these steps:

1 . Start frontend :

cd client

2 . Install dependencies :

npm install

3 . Add A Environment Variable File .env having the Variables :

CLIENT_ID=<THE-GOOGLE-AUTH-CLIENT-ID>
CLIENT_SECRET_KEY=<THE-GOOGLE-AUTH-CLIENT-ID>
CLIENT_REDIRECT_URL=<THE-URL-OF-YOUR-BACKEND>

VITE_APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1
VITE_APPWRITE_PROJECT=<YOUR-APPWRITE-PROJECT-ID>

PORT=<PORT-AT-WHICH-YOUR-BACKEND-IS-RUNNING>

3 . Run client on localhost :

npm run dev

To get started with Sarthi Backend, follow these steps:

1 . Direct to the sarthi project directory -> then to the server directory by using :

cd server

2 . Install dependencies :

npm install

3 . Add A Environment Variable File .env having the Variables :

MONGO_URI=<YOUR-MONGODB-ATLAS-DATABASE-URL>
PORT=<PORT-YOUR-WANT-YOUR-BACKEND-TO-RUN>

CLOUDINARY_CLOUD_NAME=<YOUR-CLOUDINARY_CLOUD_NAME>
CLOUDINARY_API_KEY=<YOUR-CLOUDINARY_API_KEY>
CLOUDINARY_API_SECRET=<YOUR-CLOUDINARY_API_SECRET>

SERVER_ADDRESS=<WHERE_YOUR_BACKEND_IS_RUNNING_> eg(http://localhost/PORT_NO.)

#If your dont have these details create one on https://ethereal.email/ and create a demo account
MAIL_HOST=<MAIL-HOST>
MAIL_PORT=<MAIL-PORT>
MAIL_AUTH_USER=<MAIL_AUTH_USER>
MAIL_AUTH_PASSWORD=<MAIL_AUTH_PASSWORD>
MAIL_OWNER_FOR_AUTH=<MAIL_ID_OF_MODERATOR/OWNER_OF_WEBSITE>

JWT_SECRET_KEY=<YOUR-JWT_SECRET_KEY>

3 . Run client on localhost :

npm run dev

This will launch the application frontend in your default web browser.

You can access it at http://localhost:5173

Our Contributors ❤️

Thank you for contributing to our repository

Contributors

Show some ❤️ by starring this awesome repository!