This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
SkillNex.us is a React-based typing practice application designed to help users develop muscle memory for Linux/Windows commands. The application simulates a terminal environment where users can practice typing various command sets including Linux commands (beginner, intermediate, advanced), pentesting commands, and guided walkthroughs.
npm start- Runs the development server on http://localhost:3000npm run build- Creates production build inbuild/foldernpm test- Runs the test suite in watch modenpm run eject- Ejects from Create React App (irreversible)
npm install- Install dependencies after cloning- The app uses hot reloading in development mode
- Debug mode can be enabled with
REACT_APP_DEBUG=trueenvironment variable
The app follows a standard React component hierarchy:
Main Components:
App.tsx- Root component managing global state and routing between desktop/mobile viewsTerminal.tsx- Core terminal simulation component with dragging functionalityTextInput.tsx- Handles user input with real-time command validationXFCEMenuBar.tsx- Desktop environment simulationSelectTestModal.tsx- Command set selection interfaceResultModal.tsx- Test completion results display
- Uses React hooks for local state management
- Key state includes:
selectedCommandSet- Currently active command setisTestRunning- Test execution statusresults- Test completion historyentries- All available command sets loaded from commands.json
commands.json- Central configuration file containing all command sets- Each command set has: name, value (ID), type (category), and commands array
- Command structure:
{ command: string, description: string } - Types defined in
src/types/commandSet.ts
- Terminal Simulation: Draggable terminal window with authentic styling
- Real-time Validation: Character-by-character input validation with mistake tracking
- Multiple Command Sets: Organized by difficulty (beginner/intermediate/advanced) and category
- Responsive Design: Desktop-optimized with mobile redirect
- Performance Metrics: Accuracy calculation and timing
- Command History: Shows previous commands during test execution
- Tailwind CSS for utility-first styling
- PostCSS with autoprefixer for vendor prefixes
- Custom CSS for terminal-specific styling in component CSS files
- XFCE desktop environment aesthetic
- Props drilling for passing state between components
- Event handlers passed down for user interactions
- Modal system for overlays (test selection, results)
- Edit
src/commands.json - Follow the existing structure with unique keys
- Include: name, value (kebab-case ID), type (category), commands array
- Commands need both
commandanddescriptionproperties
Linux-Commands- Basic to advanced Linux terminal commandsPentesting-Commands- Security testing tools and techniquesBox-Walkthroughs- Step-by-step guided penetration testing scenarios
The project uses Create React App's built-in testing setup with Jest and React Testing Library. Run tests with npm test for watch mode.
- Static site optimized for GitHub Pages or similar hosting
- Production build outputs to
build/directory - All assets are in
public/directory including background image - Uses environment variables with
REACT_APP_prefix