This is the monorepo for the NeuronStep project, which includes both the NeuronStep Mobile App and the NeuronStep Server.
NeuronStep is a Retrieval Augmented Generation (RAG) system that validates course requests, analyzes them, and generates complete curricula. It creates curriculum plans with topics, subtopics, and content blocks tailored to any language, learning preference, or style, allowing users to fine-tune courses to their specific needs.
The monorepo structure allows for sha 8000 red development between the mobile app and server, leveraging common packages and ensuring consistency across the project.
root/
├── apps/
│ ├── mobile/ # NeuronStep mobile app built with React Native and Expo
│ └── backend/ # NeuronStep server using Express for API and backend services
├── packages/ # Shared components, utilities, and services across mobile and server
├── README.md # This file
- React Native & Expo: Cross-platform mobile app framework.
- Firebase: For authentication, Firestore, and other backend services.
- TailwindCSS: Utility-first CSS for React Native with NativeWind.
- Zustand: Lightweight state management.
- React Native Paper: Material Design components.
- Node.js & Express: Backend framework handling APIs and server logic.
- OpenAI API: For AI-based course generation, validation, and analysis.
- Replicate: Stable Diffusion-based image generation.
- Zod: Type-safe schema validation for incoming API requests.
- Tesseract.js: OCR processing for document analysis.
- PDF-Parse: Extracting content from PDF files.
- Node.js (v16+)
- pnpm as the package manager
- Clone the repository:
git clone https://github.com/eyemeets/neuronstep-os.git
cd neuronstep-os
- Install dependencies using
pnpm
:
pnpm install
- Navigate to the
apps/mobile
directory:
cd apps/mobile
- Start the Expo development server:
pnpm start
- To run the app on a specific platform:
pnpm android # for Android
pnpm ios # for iOS
pnpm web # for Web
- Navigate to the
apps/server
directory:
cd apps/server
- Start the development server:
pnpm dev
The server will be running at http://<your-ip>:8080
.
The packages
directory contains shared utilities, components, or configurations that are used across both the mobile and server applications. This ensures code reusability and consistency.
Both the mobile app and server require environment variables for API keys (e.g., OpenAI, Replicate, Firebase). Ensure to add the required variables to the respective .env
files in each app.
- Mobile:
apps/mobile/.env
- Server:
apps/server/.env
Example for OpenAI in the server's .env
file:
OPENAI_API_KEY=your-api-key
This monorepo uses Vitest for server testing and Jest for mobile app testing.
To run server tests:
cd apps/server
pnpm test
To run mobile app tests:
cd apps/mobile
pnpm test
Contributions are welcome! Feel free to submit a pull request or open an issue for discussion.
This project is open-source under the ISC License.