- under
studysynth\, runpnpm install - then run
pnpm run devand click onhttp://localhost:3000 - Make sure to have your environment variables for testing by creating a
.envfile understudysynth\
MONGODB_URI=<mongodb-uri>
SECRET_KEY=<your-secret-key>
JWT_SECRET=<your-jwt-secret>
make sure to create your own branch before comitting
- run
git checkout -b <branch-name> - run
git push -u origin <branch-name> - write your commit messages as so
<issue-number>/<commit-type>: <issue-description>
<commit-description>
for example
#30/feat: chatbot interface
created a chatbot with Perplexity API
you can refer to https://github.com/pvdlg/conventional-commit-types 4. create a pull request
-
/account/keys: GET, POST -
/study-guide: POST -
/calendar/events: GET, POST, PUT, DELETE -
/history: GET, POST -
/auth:/auth/login: POST/auth/reset: POST/auth/signup: POST/auth/user: POST
-
/ai-agent: POST
/: default route for studysynth. this is the main page where users interact with the core features/about: about page which talks about studysynth/account: page where user can manage their own account by inputting perplexity api key/login: login page for users to login/reset: page for users to reset their own password/signup: signup page for users to create an account/history: study guides the user has saved
media-preferences.tsx: selects what study materials they'd like to usestudy-plan-adjuster.tsx: adjusts the intensity and learning style of the user's study plantopic-input.tsx: inputs the user's strengths and weaknessestopic-pdf-import.tsx: imports a pdf file that covers the main concepts to study for
study-guide-display.tsx: this is where the LLM response is rendered fromPOST /api/study-guidestudy-guide-generator.tsx: this is where the users prompts the Perplexity LLM and callsPOST /api/study-guide
calendar-view.tsx: calendar feature for users to manually schedule study plans and interact with them
Make sure to DM me so I can share the MongoDB URL and database with you
{
_id: ObjectId(),
name: String, // e.g. Tim Cheese
password: String, // doesn't show actual password but encrypted version of it
perplexityKey: String = "", // not actual key but encrypted version; initally empty string cuz no key registered yet
}{
_id: ObjectId(),
profileId: ObjectId(), // get the id of an existing user
response: String | {} // usually return the API response in json or a string
}{
_id: ObjectId(),
userId: ObjectId(), // user's id
startDate: Date(), // start date
endDate: Date(), // end date
title: String | "",
description: String | ""
}