Transform technical articles into interactive learning experiences with AI-powered explanations
Live Demo • API Documentation • Report Bug • Request Feature
Chiral is an intelligent learning platform that transforms how developers learn from technical articles. By integrating AI-powered explanations with intuitive highlighting and note-taking features, Chiral makes complex programming concepts accessible to everyone.
- Smart Article Discovery: Browse curated articles from Dev.to API with personalized recommendations
- AI-Powered Explanations: Get instant, simplified explanations for complex terms using Google Gemini AI
- Intelligent Highlighting: Highlight confusing text and receive automatic AI explanations
- Comprehensive Notes: Create traditional notes or save highlighted content for future reference
- Secure Authentication: Email/password and Google OAuth integration
- Personalized Experience: Customize learning interests for tailored content recommendations
- Modern UI/UX: Clean, responsive design built with React and Tailwind CSS
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Frontend │ │ Backend │ │ Database │
│ (React) │◄──►│ (Express.js) │◄──►│ (PostgreSQL) │
│ │ │ │ │ │
│ • Vite │ │ • JWT Auth │ │ • Sequelize ORM │
│ • Redux Toolkit │ │ • RESTful API │ │ • User Data │
│ • Tailwind CSS │ │ • Gemini AI │ │ • Notes/Highlights│
└─────────────────┘ └─────────────────┘ └─────────────────┘
│
┌───────▼───────┐
│ External APIs │
│ │
│ • Dev.to API │
│ • Google AI │
│ • Google OAuth │
└───────────────┘
- Node.js (v18 or higher)
- PostgreSQL (v14 or higher)
- npm or yarn package manager
-
Clone the repository
git clone https://github.com/neubri/chiral-dev.git cd chiral-dev -
Set up the backend
cd server npm install -
Configure environment variables
cp .env.example .env # Edit .env with your configuration -
Set up the database
npm run db:migrate npm run db:seed # Optional: Add sample data -
Start the backend server
npm run dev # Development mode # or npm start # Production mode
-
Set up the frontend
cd ../client npm install npm run dev -
Access the application
- Frontend: http://localhost:5173
- Backend API: http://localhost:3000
# Database
DB_HOST=localhost
DB_PORT=5432
DB_NAME=chiral_dev
DB_USERNAME=your_username
DB_PASSWORD=your_password
# JWT
JWT_SECRET=your-super-secret-jwt-key
# Google OAuth
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
# Google AI (Gemini)
GEMINI_API_KEY=your-gemini-api-key
# Environment
NODE_ENV=development
PORT=3000# API Base URL
VITE_API_BASE_URL=http://localhost:3000/api
# Google OAuth
VITE_GOOGLE_CLIENT_ID=your-google-client-idComprehensive API documentation is available in API_DOC.md.
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/articles |
Get public articles |
GET |
/api/articles/:id |
Get article details |
POST |
/api/auth/register |
User registration |
POST |
/api/auth/login |
User login |
POST |
/api/notes |
Create note |
POST |
/api/highlights |
Create highlight |
POST |
/api/gemini/explain |
AI explanation |
- React 19 - UI library
- Vite - Build tool and dev server
- Redux Toolkit - State management
- React Router - Client-side routing
- Tailwind CSS - Utility-first CSS framework
- Axios - HTTP client
- React Hot Toast - Notifications
- Node.js - Runtime environment
- Express.js - Web framework
- Sequelize - PostgreSQL ORM
- JWT - Authentication
- bcryptjs - Password hashing
- Google AI (Gemini) - AI explanations
- Google Auth Library - OAuth integration
- PostgreSQL - Primary database
- Sequelize - ORM and migrations
- Jest - Testing framework
- Supertest - API testing
- ESLint - Code linting
- Nodemon - Development server
chiral-dev/
├── client/ # Frontend React application
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Page components
│ │ ├── layouts/ # Layout components
│ │ ├── store/ # Redux store configuration
│ │ ├── lib/ # Utility libraries
│ │ └── assets/ # Static assets
│ ├── public/ # Public assets
│ └── package.json # Frontend dependencies
│
├── server/ # Backend Express application
│ ├── controllers/ # Route controllers
│ ├── models/ # Database models
│ ├── middlewares/ # Express middlewares
│ ├── helpers/ # Utility functions
│ ├── migrations/ # Database migrations
│ ├── __tests__/ # Test files
│ └── package.json # Backend dependencies
│
└── README.md # Project documentation
cd server
npm test # Run all tests
npm run test:coverage # Run tests with coverage
npm run test:watch # Watch modeThe project maintains comprehensive test coverage including:
- Unit tests for controllers and helpers
- Integration tests for API endpoints
- Authentication and authorization tests
- Database model tests
This project is licensed under the MIT License - see the LICENSE file for details.
This project is currently in active development as part of a Phase 2 Individual Project. New features and improvements are being added regularly.
Made with ❤️ by Neubri Hidayah
If you found this project helpful, please consider giving it a ⭐!
