Follow the instructions to set up the project on your local machine.
Read the Vita Case Study and User Journey doc.
Install NodeJS LTS
-
npm
npm install npm@latest -g
-
Fork the repo(required), a star is also appretiated but optional :P
-
Clone the forked repo
git clone https://github.com/{your-github-username}/Vita.git
example :
git clone https://github.com/Rishabh-malhotraa/Vita.git
-
Install NPM packages
npm run install-modules
-
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
-
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
-
ONLY FOR WIDNOWS USER. Install
nodemon
andts-node
globallynpm install -g nodemon ts-node
-
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 foldernpm run dev
If you are using Windows, run this command from the main project folder
npm run dev:ts
-
Go to http://localhost:3000.
NOTE: Do not use http://127.0.0.1:3000
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
See the open issues for a list of proposed features (and known issues).
- 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
- 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
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Refer to this article if you have any difficulty in making a pull request