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.
-> 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>
#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>
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](https://contrib.rocks/image?repo=samarthhapse/sarthi)
### Show some ❤️ by starring this awesome repository!