Learning Compass is a web application designed to enhance the online learning experience. It provides tools for course management, AI-powered assistance, real-time chat, note-taking, and more, creating a comprehensive platform for learners and educators.
Learning Compass utilizes a client-server architecture:
- Client: The frontend is a single-page application (SPA) built with React and Vite. It handles the user interface and interaction.
- Server: The backend is developed with Node.js and Express. It manages business logic, API endpoints, and database interactions. It uses PostgreSQL as its database, with Drizzle ORM for database access.
Learning Compass offers a variety of features to support users in their learning journey:
- User Authentication: Secure user registration and login.
- Course Browsing and Management: Explore and manage online courses.
- AI-Powered Learning Assistance: Integrated AI tools to help with learning tasks.
- Real-time Chat: Communicate with peers or instructors.
- Note-taking: Create and organize personal notes for courses.
- Bookmarking: Save and manage useful resources.
- Recommendation System: Get personalized course and resource recommendations.
- Commenting System: Engage in discussions and provide feedback.
To get Learning Compass up and running on your local machine, follow these steps:
Prerequisites:
- Node.js (which includes npm)
- Access to a PostgreSQL database
1. Clone the repository:
git clone https://github.com/junjiezhou1122/LearningCompass.git
cd LearningCompass2. Install dependencies:
This project has dependencies managed in the root package.json and potentially in the server directory.
For the root directory:
npm installFor the server (if it has its own package.json with server-specific build/start scripts not covered by the root package.json):
cd server
npm install # if applicable
cd ..3. Configure Environment Variables:
The application likely requires environment variables for database connections, API keys (Firebase, AI services), etc. Create a .env file in the root directory and/or server directory based on any provided .env.example files or project documentation.
Key variables might include:
DATABASE_URLFIREBASE_CONFIGANTHROPIC_API_KEYOPENAI_API_KEYSESSION_SECRET
4. Database Setup:
- Ensure your PostgreSQL server is running.
- Apply database migrations using Drizzle ORM. The command is typically:
(Refer to
npx drizzle-kit push
package.jsonfor the exact script if available, e.g.,npm run db:push)
5. Running the Application:
The main package.json includes scripts to run the application:
-
Development Mode (Client + Server with hot reload):
npm run dev
This command likely starts both the Vite client and the Node.js server concurrently.
-
Build for Production:
npm run build
-
Start in Production Mode (after building):
npm run start
Check the scripts section in package.json for the most up-to-date commands. The client application will typically be accessible at http://localhost:5000
Contributions to Learning Compass are welcome! If you have ideas for new features, bug fixes, or improvements, please feel free to:
- Fork the repository.
- Create a new branch for your feature or fix.
- Make your changes.
- Submit a pull request with a clear description of your changes.
We appreciate your help in making Learning Compass a better platform!