An interactive web application for teaching and learning regular expressions. This platform allows professors to create regex exercises and activities, while students can practice and solve them in a structured environment.
- Class Management: Create and manage classrooms with students
- Exercise Creation: Design regex exercises with automatic test case generation
- Activity Distribution: Assign exercises to students with deadlines
- Progress Tracking: Monitor student progress in real-time
- Authentication: Secure login via Google and Facebook OAuth
- Interactive Learning: Solve regex exercises step by step
- Real-time Validation: Instant feedback on regex solutions
- Progress Tracking: Track your learning journey
- Social Login: Easy authentication through social platforms
- Regex Validation: Advanced regex parsing and validation using PEG.js
- Equivalence Checking: Verify if two regular expressions are equivalent
- Test Case Generation: Automatic generation of valid/invalid test cases
- Real-time Communication: Socket.io integration for live updates
- React 16.2.0 - User interface library
- Redux - State management
- React Router - Client-side routing
- Bootstrap 4 - UI framework
- Socket.io Client - Real-time communication
- Node.js - Server runtime
- Express.js - Web framework
- MongoDB with Mongoose - Database
- Socket.io - WebSocket communication
- Passport.js - Authentication (Google, Facebook OAuth)
- JWT - Token-based authentication
- Webpack - Module bundler
- Babel - JavaScript transpiler
- Jest - Testing framework
- ESLint - Code linting
- PEG.js - Parser generator for regex parsing
- Node.js 14.15.2
- MongoDB 4.4.9+
- Google OAuth credentials (optional)
- Facebook OAuth credentials (optional)
-
Clone the repository
git clone https://github.com/gtkatakura/furb-learn-regex.git cd furb-learn-regex
-
Install dependencies
npm install
-
Set up environment variables
cp .env.template .env
Edit
.env
and configure:- MongoDB connection string
- OAuth credentials (Google/Facebook)
- JWT signing key
- Email service credentials
-
Start MongoDB
docker-compose up -d
-
Build the application
npm run build
npm run dev
npm start
The application will be available at http://localhost:3000
Run the test suite:
npm test
Run tests in watch mode:
npm run test:watch
npm start
- Start production servernpm run dev
- Start development server with hot reloadnpm run build
- Build for productionnpm run build:pegjs
- Generate PEG.js parsernpm test
- Run testsnpm run test:watch
- Run tests in watch mode
The application uses PEG.js to parse regular expressions and extract symbols for exercise generation. This allows for sophisticated regex analysis and validation.
Professors can create exercises by specifying:
- Exercise description
- Target regular expression
- Step-by-step progression for students
The system automatically generates test cases based on the regex patterns.
Socket.io enables real-time communication between professors and students, allowing for live progress tracking and notifications.
Learn Regex - Making regular expressions accessible and interactive for everyone! 🎯