Gnosis is an intelligent learning platform that leverages OpenAI's advanced language models to provide personalized education experiences. The application helps users learn new subjects through interactive lessons, quizzes, and adaptive learning paths.
- Personalized Learning: AI-driven content generation tailored to your learning style and pace
- Interactive Lessons: Dynamic lesson generation across various subjects
- Practice Quizzes: Auto-generated quizzes to test understanding
- Progress Tracking: Monitor your learning journey
- Multi-subject Support: Learn anything from mathematics to programming
- Adaptive Learning: Content difficulty adjusts based on your performance
- Python 3.11
- Flask (Web Framework)
- SQLAlchemy (ORM)
- OpenAI API (GPT-3.5 Turbo)
- JWT Authentication
- React 18
- Vite
- Material-UI
- Axios
- Docker
- Docker Compose
- SQLite Database
gnosis/
├── .env.example # Example environment variables
├── .gitignore # Git ignore rules
├── Dockerfile # Backend Dockerfile
├── README.md # Project documentation
├── docker-compose.yml # Docker compose configuration
├── requirements.txt # Python dependencies
│
├── docs/ # Documentation files
│ ├── api/ # API documentation
│ └── guides/ # User and developer guides
│
├── frontend/ # React frontend application
│ ├── Dockerfile # Frontend Dockerfile
│ ├── package.json # Node.js dependencies
│ ├── public/ # Static assets
│ └── src/ # React source code
│ ├── components/ # Reusable React components
│ ├── contexts/ # React contexts
│ ├── hooks/ # Custom React hooks
│ ├── pages/ # Page components
│ ├── services/ # API services
│ └── theme/ # UI theming
│
├── scripts/ # Utility scripts
│ └── init_db.py # Database initialization script
│
├── src/ # Backend source code
│ ├── api/ # API layer
│ │ └── routes/ # Route definitions
│ │ ├── ai_routes.py
│ │ ├── auth_routes.py
│ │ └── learning_routes.py
│ │
│ ├── config/ # Configuration management
│ │ └── settings.py # Application settings
│ │
│ ├── core/ # Core application code
│ │ ├── models/ # Database models
│ │ ├── schemas/ # Data validation schemas
│ │ ├── middleware/ # Custom middleware
│ │ └── utils/ # Utility functions
│ │
│ ├── services/ # Business logic services
│ │ ├── ai/ # AI-related services
│ │ └── auth/ # Authentication services
│ │
│ └── app.py # Application entry point
│
└── tests/ # Test suite
├── integration/ # Integration tests
└── unit/ # Unit tests
- Docker and Docker Compose
- Node.js 18+ (for local development)
- Python 3.11+ (for local development)
- OpenAI API Key
Copy .env.example to .env and fill in the required values:
FLASK_APP=app.py
FLASK_DEBUG=1
FLASK_ENV=development
SECRET_KEY=your_secret_key
DATABASE_URL=sqlite:///instance/app.db
OPENAI_API_KEY=your_openai_api_key- Build and start the containers:
docker-compose up --build- Access the application:
- Frontend: http://localhost:5177 (Example port, change to existing port)
- Backend API: http://localhost:5000 (Example port, change to existing port)
- Backend Setup:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
flask run- Frontend Setup:
cd frontend
npm install
npm run devmain: Production-ready codedevelop: Main development branch- Feature branches:
feature/* - Release branches:
release/* - Hotfix branches:
hotfix/*
- Create a feature branch from
develop - Make your changes
- Submit a pull request to
develop
- Backend tests:
python -m pytest - Frontend tests:
cd frontend && npm test