Skip to content

Latest commit

 

History

History
127 lines (86 loc) · 4.01 KB

CONTRIBUTION.md

File metadata and controls

127 lines (86 loc) · 4.01 KB

Getting Started

Follow the instructions to set up the project on your local machine.

Read the Vita Case Study and User Journey doc.

Prerequisites

Install NodeJS LTS

  • npm

    npm install npm@latest -g

Installation

  1. Fork the repo(required), a star is also appretiated but optional :P

  2. Clone the forked repo

    git clone https://github.com/{your-github-username}/Vita.git

    example : git clone https://github.com/Rishabh-malhotraa/Vita.git

  3. Install NPM packages

    npm run install-modules
  4. Install MongoDB for your OS. For windows you can also follow this video guide to set up MongoDB

    For mac you can also follow this video guide to set up MongoDB

  5. This step is only required if you are using WSL/Linux and only once when setting up the project. (WINDOWS USERS SKIP THIS!!!)

    cd api
    npm run build
  6. ONLY FOR WIDNOWS USER. Install nodemon and ts-node globally

    npm install -g nodemon ts-node
  7. Start the react and nodejs server concucrrently. Make sure you have mongod running in the background before running this command! Also run this command from main project folder. if you are using WSL/Linux, run this command from the main project folder

    npm run dev

    If you are using Windows, run this command from the main project folder

    npm run dev:ts
  8. Go to http://localhost:3000.

NOTE: Do not use http://127.0.0.1:3000

Setting up DATABASE

Run the following command to setup the DB

curl -X GET http://localhost:5000/api/seed-data

The following command will create a Password for admin panel access

curl -X POST http://localhost:5000/api/admin/create --header 'Content-Type: application/json' \
--data-raw '{
    "name": "Rishabh Malhtora",
    "email": "rishabhmalhotraa01@gmail.com",
    "password": "password"
}'

DEPRECATED: To setup the database with mockdata, follow this guide

Roadmap

See the open issues for a list of proposed features (and known issues).

Things done

  • Inital Landing Page
  • Linking MongoDB Database with the backend
  • Sprinkling global state with Recoil (highly recommend it as compared to redux if there are no complex state transactions happening)
  • Infinite Scrolling on Search for Topics
  • Design Doc
  • Add github workflows

Future Goals

  • Add Google Oauth
  • Add a login page and a way to add mentors from the Frontend (send form data to the backend, which after validation add user in mentors collection)
  • Add an admin panel to monitor all meetings.
  • If a mentor/mentee does not show up, report as a no-show, and restrict their account.
  • Improve Filters & add more topics
  • Add Full-text Search Functionality for finding mentors!
  • Add bookings page for each signed-in user, which allows the mentor to accept, deject and reschedule his appointments
  • Use Redis Adapter instead of Node Cache :3
  • Write Unit Test

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Refer to this article if you have any difficulty in making a pull request