Pathwise is a React/Flask/Supabase based web platform that helps users create personalized learning roadmaps (Paths) for any topic. Powered by AI, it generates step-by-step guides to help users master their chosen topics. Created for CodeVerse Hackathon 2025.
- User auth
- AI roadmap and content generation
- Utilize Google Search API context for content
- Contextual doubt clearing AI chatbot
- Note-taking feature
- Secure learning path data storage with Supabase
- Dashboard functionality
- Settings page
- Improve "Further Reading" section links
- User API keys implementation instead of hardcoded
- Dark theme?
- Node.js (v18 or later ideally)
- npm
- Python (v3.10 or later)
-
Clone the repo:
git clone https://github.com/crowaltz24/pathwise.git cd pathwise -
Install dependencies:
npm install
-
Navigate to
backend:cd backend -
Create a Python venv:
python -m venv venv
-
Activate the venv:
- Windows:
venv\Scripts\activate
- Windows:
-
Install the required python dependencies:
pip install -r requirements.txt
-
Start the development server:
npm start
npm startactivates the venv, starts the backend Flask server as well as the React development server simulatenously. -
Build for deployment:
npm run build
This also moves the build folder to
/backendas I serve the site via the Flask server. -
In the backend folder, run via:
python main.py
That should be the site, up and running on your Flask server! Or if you don't like monorepos, just move the build folder, do whatever you prefer.
Ensure your .env or your deployment environment variables are configured as follows:
PYTHONIOENCODING=utf-8
REACT_APP_API_BASE_URL=
REACT_APP_SUPABASE_URL=
REACT_APP_SUPABASE_ANON_KEY=
GOOGLE_API_KEY=
GOOGLE_CSE_ID=
OPENROUTER_API_KEY=
- Your API base URL is wherever you're serving your Flask endpoints - I only put it into env to hotswap it for local dev (probably better ways to do this but whatever)
- Works on the assumption that the Supabase tables are structured as expected
- Needs Google Custom Search API and a Programmable Search Engine thingy, but if you don't wanna deal with that then you can just remove the parts where it needs them in
main.py - In case you do remove the Google Search context stuff, I think you're okay removing
PYTHONIOENCODINGfrom your environment variables, too. I'm not super sure why I put it in there either - Don't forget your OpenRouter key for all your LLM needs! (which will be Many. have you SEEN this project)