worker-1: completed task task-deployment [failed]
This commit is contained in:
parent
fc3e990935
commit
86cec8a859
43
.github/workflows/deploy.yml
vendored
Normal file
43
.github/workflows/deploy.yml
vendored
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
name: Deploy Application
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ main ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ main ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
node-version: [14.x, 16.x, 18.x]
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Use Node.js ${{ matrix.node-version }}
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: ${{ matrix.node-version }}
|
||||||
|
cache: 'npm'
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: npm ci
|
||||||
|
|
||||||
|
- name: Lint
|
||||||
|
run: npm run lint
|
||||||
|
|
||||||
|
- name: Test
|
||||||
|
run: npm test -- --coverage
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: npm run build
|
||||||
|
|
||||||
|
- name: Deploy to GitHub Pages
|
||||||
|
if: github.ref == 'refs/heads/main'
|
||||||
|
uses: peaceiris/actions-gh-pages@v3
|
||||||
|
with:
|
||||||
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
publish_dir: ./build
|
||||||
@ -16,6 +16,7 @@ description: |
|
|||||||
- Setup instructions
|
- Setup instructions
|
||||||
- Analytics configuration
|
- Analytics configuration
|
||||||
assigned_to: worker-1
|
assigned_to: worker-1
|
||||||
status: in_progress
|
status: failed
|
||||||
|
result: 'qwen: agent loop: agent exceeded max steps (20)'
|
||||||
created_at: 2026-04-08T00:01:49.285216405Z
|
created_at: 2026-04-08T00:01:49.285216405Z
|
||||||
updated_at: 2026-04-08T00:09:25.429945119Z
|
updated_at: 2026-04-08T00:11:55.805251025Z
|
||||||
|
|||||||
101
CONTRIBUTING.md
101
CONTRIBUTING.md
@ -1,13 +1,100 @@
|
|||||||
# Contributing to This Project
|
# Contributing to Jargon File Explorer
|
||||||
|
|
||||||
## Getting started
|
Welcome to the Jargon File Explorer project! We're excited that you're interested in contributing. This guide will help you get started with contributing to the project.
|
||||||
|
|
||||||
To get started, clone the repository and install dependencies locally. Run the application to verify everything is working correctly.
|
## Table of Contents
|
||||||
|
- [Code of Conduct](#code-of-conduct)
|
||||||
|
- [How to Contribute](#how-to-contribute)
|
||||||
|
- [Reporting Bugs](#reporting-bugs)
|
||||||
|
- [Suggesting Enhancements](#suggesting-enhancements)
|
||||||
|
- [Development Setup](#development-setup)
|
||||||
|
- [Pull Request Process](#pull-request-process)
|
||||||
|
- [Style Guides](#style-guides)
|
||||||
|
- [Additional Resources](#additional-resources)
|
||||||
|
|
||||||
## Style
|
## Code of Conduct
|
||||||
|
|
||||||
Follow the existing code style and formatting conventions. Use consistent indentation and naming conventions throughout the codebase.
|
This project and everyone participating in it is governed by the [Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code.
|
||||||
|
|
||||||
## Pull requests
|
## How to Contribute
|
||||||
|
|
||||||
Use descriptive branch names that clearly indicate the feature or fix being implemented. Submit pull requests with clear descriptions of changes and their purpose.
|
There are many ways to contribute to this project:
|
||||||
|
- Reporting bugs
|
||||||
|
- Suggesting enhancements
|
||||||
|
- Writing or improving documentation
|
||||||
|
- Writing code
|
||||||
|
- Submitting pull requests
|
||||||
|
|
||||||
|
## Reporting Bugs
|
||||||
|
|
||||||
|
Bugs are tracked as GitHub issues. Before submitting a bug report, please:
|
||||||
|
|
||||||
|
1. Check if the issue has already been reported
|
||||||
|
2. Ensure you're using the latest version of the application
|
||||||
|
3. Provide a clear description of the problem
|
||||||
|
4. Include steps to reproduce the issue
|
||||||
|
5. Include any relevant error messages or screenshots
|
||||||
|
|
||||||
|
## Suggesting Enhancements
|
||||||
|
|
||||||
|
Enhancement suggestions are also tracked as GitHub issues. Before submitting an enhancement:
|
||||||
|
|
||||||
|
1. Check if the enhancement has already been suggested
|
||||||
|
2. Clearly describe the enhancement
|
||||||
|
3. Explain why it would be useful
|
||||||
|
4. If possible, include mockups or examples
|
||||||
|
|
||||||
|
## Development Setup
|
||||||
|
|
||||||
|
### Prerequisites
|
||||||
|
- Node.js (version 14 or higher)
|
||||||
|
- npm (usually comes with Node.js)
|
||||||
|
|
||||||
|
### Installation
|
||||||
|
1. Fork the repository
|
||||||
|
2. Clone your fork:
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/YOUR_USERNAME/jargon-file-explorer.git
|
||||||
|
cd jargon-file-explorer
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Install dependencies:
|
||||||
|
```bash
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Start the development server:
|
||||||
|
```bash
|
||||||
|
npm start
|
||||||
|
```
|
||||||
|
|
||||||
|
## Pull Request Process
|
||||||
|
|
||||||
|
1. Ensure any install or build dependencies are removed before the end of the layer when doing a build
|
||||||
|
2. Update the README.md with details of changes to the interface, including new environment variables, exposed ports, useful file locations and container parameters
|
||||||
|
3. Increase the version numbers in any examples files and the README.md to the new version that this Pull Request would represent
|
||||||
|
4. You may merge the Pull Request in once the code review is complete, the CI/CD pipeline has passed, and you have the sign-off of other maintainers
|
||||||
|
|
||||||
|
## Style Guides
|
||||||
|
|
||||||
|
### JavaScript
|
||||||
|
- Use functional components with hooks
|
||||||
|
- Follow React best practices
|
||||||
|
- Write clean, readable code
|
||||||
|
- Include comments for complex logic
|
||||||
|
|
||||||
|
### CSS
|
||||||
|
- Use CSS Modules for component styling
|
||||||
|
- Follow a consistent naming convention (BEM or similar)
|
||||||
|
- Ensure responsive design
|
||||||
|
|
||||||
|
### Documentation
|
||||||
|
- Write clear and concise documentation
|
||||||
|
- Use consistent formatting
|
||||||
|
- Update documentation when making changes
|
||||||
|
|
||||||
|
## Additional Resources
|
||||||
|
|
||||||
|
- [Project Plan](PROJECT_PLAN.md)
|
||||||
|
- [Technical Specification](REACT_APP_SPEC.md)
|
||||||
|
- [Developer Documentation](DEVELOPER_DOCS.md)
|
||||||
221
DEVELOPER_DOCS.md
Normal file
221
DEVELOPER_DOCS.md
Normal file
@ -0,0 +1,221 @@
|
|||||||
|
# Developer Documentation
|
||||||
|
|
||||||
|
This document provides detailed information for developers working on the Jargon File Explorer application.
|
||||||
|
|
||||||
|
## Table of Contents
|
||||||
|
- [Overview](#overview)
|
||||||
|
- [Architecture](#architecture)
|
||||||
|
- [Data Structure](#data-structure)
|
||||||
|
- [API Documentation](#api-documentation)
|
||||||
|
- [Components](#components)
|
||||||
|
- [Routing](#routing)
|
||||||
|
- [State Management](#state-management)
|
||||||
|
- [Testing](#testing)
|
||||||
|
- [Deployment](#deployment)
|
||||||
|
- [Performance Considerations](#performance-considerations)
|
||||||
|
- [Security](#security)
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
The Jargon File Explorer is a React Single Page Application that presents jargon terms and definitions from the classic hacker culture jargon file. The application is designed to be responsive, accessible, and easy to navigate.
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
The application follows a component-based architecture with the following key principles:
|
||||||
|
|
||||||
|
### Folder Structure
|
||||||
|
```
|
||||||
|
src/
|
||||||
|
├── components/ # Reusable UI components
|
||||||
|
│ ├── Header/
|
||||||
|
│ ├── Footer/
|
||||||
|
│ ├── EntryList/
|
||||||
|
│ ├── EntryCard/
|
||||||
|
│ ├── EntryDetail/
|
||||||
|
│ └── SearchBar/
|
||||||
|
├── data/ # Jargon entries data
|
||||||
|
│ └── jargonEntries.json
|
||||||
|
├── pages/ # Page-level components
|
||||||
|
│ ├── Home/
|
||||||
|
│ ├── EntryDetail/
|
||||||
|
│ └── SearchResults/
|
||||||
|
├── services/ # Data handling and business logic
|
||||||
|
├── utils/ # Utility functions
|
||||||
|
├── styles/ # CSS Modules
|
||||||
|
└── App.js # Main application component
|
||||||
|
```
|
||||||
|
|
||||||
|
## Data Structure
|
||||||
|
|
||||||
|
### Jargon Entry Format
|
||||||
|
Each jargon entry is a JSON object with the following properties:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"term": "Hacker",
|
||||||
|
"definition": "A person who enjoys exploring the details of programmable systems...",
|
||||||
|
"category": "Core Terms",
|
||||||
|
"relatedTerms": ["Cracker", "Security Researcher"],
|
||||||
|
"dateAdded": "2026-04-08"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Data Loading
|
||||||
|
Data is loaded from `src/data/jargonEntries.json` and parsed into the application's state.
|
||||||
|
|
||||||
|
## API Documentation
|
||||||
|
|
||||||
|
The application is a frontend-only application, but it interacts with:
|
||||||
|
|
||||||
|
### Data API
|
||||||
|
- **GET** `/data/jargonEntries.json` - Fetches all jargon entries
|
||||||
|
- **GET** `/data/jargonEntries/:id` - Fetches a specific jargon entry
|
||||||
|
|
||||||
|
### Search API
|
||||||
|
- **GET** `/search?q=term` - Searches jargon entries by term or definition
|
||||||
|
|
||||||
|
## Components
|
||||||
|
|
||||||
|
### Main Components
|
||||||
|
|
||||||
|
#### Header
|
||||||
|
- Displays application title and navigation links
|
||||||
|
- Contains the main navigation bar
|
||||||
|
|
||||||
|
#### Footer
|
||||||
|
- Displays copyright information
|
||||||
|
- Contains application metadata
|
||||||
|
|
||||||
|
#### EntryList
|
||||||
|
- Displays a list of jargon entries
|
||||||
|
- Supports pagination and filtering
|
||||||
|
|
||||||
|
#### EntryCard
|
||||||
|
- Individual card component for displaying a single entry
|
||||||
|
- Used within EntryList
|
||||||
|
|
||||||
|
#### EntryDetail
|
||||||
|
- Displays detailed information for a single jargon entry
|
||||||
|
- Shows term, definition, category, and related terms
|
||||||
|
|
||||||
|
#### SearchBar
|
||||||
|
- Allows users to search jargon entries
|
||||||
|
- Provides real-time search functionality
|
||||||
|
|
||||||
|
### Page Components
|
||||||
|
|
||||||
|
#### Home
|
||||||
|
- Main page that displays the list of all jargon entries
|
||||||
|
- Provides overview and navigation
|
||||||
|
|
||||||
|
#### EntryDetail
|
||||||
|
- Page for displaying a single jargon entry in detail
|
||||||
|
- Shows complete information about the entry
|
||||||
|
|
||||||
|
#### SearchResults
|
||||||
|
- Page that displays search results
|
||||||
|
- Shows filtered list of entries based on search query
|
||||||
|
|
||||||
|
## Routing
|
||||||
|
|
||||||
|
The application uses React Router for client-side navigation:
|
||||||
|
|
||||||
|
- `/` - Home page (entry list)
|
||||||
|
- `/entry/:id` - Individual entry detail page
|
||||||
|
- `/search` - Search results page
|
||||||
|
|
||||||
|
## State Management
|
||||||
|
|
||||||
|
The application uses React's built-in state management with hooks:
|
||||||
|
|
||||||
|
- `useState` for local component state
|
||||||
|
- `useEffect` for side effects and data fetching
|
||||||
|
- Context API for global state (if needed)
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
|
||||||
|
The application uses React Testing Library for testing:
|
||||||
|
|
||||||
|
### Unit Tests
|
||||||
|
- Test individual components
|
||||||
|
- Test component rendering and behavior
|
||||||
|
- Test data handling logic
|
||||||
|
|
||||||
|
### Integration Tests
|
||||||
|
- Test component interactions
|
||||||
|
- Test routing behavior
|
||||||
|
- Test data flow through components
|
||||||
|
|
||||||
|
To run tests:
|
||||||
|
```bash
|
||||||
|
npm test
|
||||||
|
```
|
||||||
|
|
||||||
|
## Deployment
|
||||||
|
|
||||||
|
### Build Process
|
||||||
|
The application is built for production using:
|
||||||
|
```bash
|
||||||
|
npm run build
|
||||||
|
```
|
||||||
|
|
||||||
|
This creates an optimized production build in the `build` directory.
|
||||||
|
|
||||||
|
### Deployment Configuration
|
||||||
|
The application can be deployed to:
|
||||||
|
- GitHub Pages
|
||||||
|
- Netlify
|
||||||
|
- Vercel
|
||||||
|
- Any static hosting service
|
||||||
|
|
||||||
|
### CI/CD Pipeline
|
||||||
|
A typical CI/CD pipeline includes:
|
||||||
|
1. Code linting and formatting
|
||||||
|
2. Running tests
|
||||||
|
3. Building the application
|
||||||
|
4. Deploying to staging/production environments
|
||||||
|
|
||||||
|
## Performance Considerations
|
||||||
|
|
||||||
|
### Optimization Techniques
|
||||||
|
- Lazy loading of components
|
||||||
|
- Virtualized lists for large data sets
|
||||||
|
- Efficient data fetching and caching
|
||||||
|
- Minimizing re-renders with React.memo
|
||||||
|
|
||||||
|
### Loading States
|
||||||
|
- Display loading indicators during data fetch
|
||||||
|
- Show skeleton screens for better perceived performance
|
||||||
|
- Implement proper error handling
|
||||||
|
|
||||||
|
## Security
|
||||||
|
|
||||||
|
### Security Best Practices
|
||||||
|
- Sanitize user inputs (though this is a static application)
|
||||||
|
- Validate data before processing
|
||||||
|
- Use HTTPS for all communications
|
||||||
|
- Keep dependencies updated
|
||||||
|
|
||||||
|
### Data Security
|
||||||
|
- All data is stored locally in the application
|
||||||
|
- No sensitive data is transmitted
|
||||||
|
- Data is not persisted to external services
|
||||||
|
|
||||||
|
## Development Guidelines
|
||||||
|
|
||||||
|
### Code Style
|
||||||
|
- Use functional components with hooks
|
||||||
|
- Follow React best practices
|
||||||
|
- Write modular, reusable code
|
||||||
|
- Use descriptive names for variables and functions
|
||||||
|
|
||||||
|
### Documentation
|
||||||
|
- Document all public APIs
|
||||||
|
- Add JSDoc comments for functions
|
||||||
|
- Keep documentation up-to-date with code changes
|
||||||
|
|
||||||
|
### Version Control
|
||||||
|
- Use semantic versioning
|
||||||
|
- Follow conventional commit messages
|
||||||
|
- Keep commits small and focused
|
||||||
138
README.md
138
README.md
@ -1,2 +1,138 @@
|
|||||||
# work
|
# Jargon File Explorer
|
||||||
|
|
||||||
|
A React Single Page Application that displays the jargon file - a collection of writings about classical computer hacker culture. This application allows users to browse, search, and explore jargon entries in an organized and accessible manner.
|
||||||
|
|
||||||
|
## Table of Contents
|
||||||
|
- [Features](#features)
|
||||||
|
- [Technologies Used](#technologies-used)
|
||||||
|
- [Getting Started](#getting-started)
|
||||||
|
- [Prerequisites](#prerequisites)
|
||||||
|
- [Installation](#installation)
|
||||||
|
- [Running the Application](#running-the-application)
|
||||||
|
- [Deployment](#deployment)
|
||||||
|
- [Project Structure](#project-structure)
|
||||||
|
- [Development](#development)
|
||||||
|
- [Testing](#testing)
|
||||||
|
- [Analytics and Monitoring](#analytics-and-monitoring)
|
||||||
|
- [Documentation](#documentation)
|
||||||
|
- [Contributing](#contributing)
|
||||||
|
- [License](#license)
|
||||||
|
|
||||||
|
## Features
|
||||||
|
- Browse jargon entries organized by category
|
||||||
|
- Search through jargon terms and definitions
|
||||||
|
- Detailed view of individual jargon entries
|
||||||
|
- Responsive design that works on all devices
|
||||||
|
- Clean, hacker-inspired aesthetic with dark theme
|
||||||
|
|
||||||
|
## Technologies Used
|
||||||
|
- React.js (with hooks and functional components)
|
||||||
|
- React Router for client-side routing
|
||||||
|
- CSS Modules for styling
|
||||||
|
- JSON data for jargon entries
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
### Prerequisites
|
||||||
|
Before you begin, ensure you have the following installed:
|
||||||
|
- Node.js (version 14 or higher)
|
||||||
|
- npm (usually comes with Node.js)
|
||||||
|
|
||||||
|
### Installation
|
||||||
|
1. Clone the repository:
|
||||||
|
```bash
|
||||||
|
git clone <repository-url>
|
||||||
|
cd jargon-file-explorer
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Install dependencies:
|
||||||
|
```bash
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
### Running the Application
|
||||||
|
To run the application in development mode:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm start
|
||||||
|
```
|
||||||
|
|
||||||
|
This will start the development server and open the application in your default browser at `http://localhost:3000`.
|
||||||
|
|
||||||
|
### Deployment
|
||||||
|
To build the application for production:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run build
|
||||||
|
```
|
||||||
|
|
||||||
|
This creates an optimized production build in the `build` directory.
|
||||||
|
|
||||||
|
## Project Structure
|
||||||
|
```
|
||||||
|
src/
|
||||||
|
├── components/ # Reusable UI components
|
||||||
|
│ ├── Header/
|
||||||
|
│ ├── Footer/
|
||||||
|
│ └── ...
|
||||||
|
├── data/ # Jargon entries data
|
||||||
|
│ └── jargonEntries.json
|
||||||
|
├── pages/ # Page components
|
||||||
|
│ ├── Home/
|
||||||
|
│ ├── EntryDetail/
|
||||||
|
│ └── SearchResults/
|
||||||
|
├── services/ # Application logic and data handling
|
||||||
|
├── utils/ # Utility functions
|
||||||
|
├── App.js # Main application component
|
||||||
|
└── index.js # Entry point
|
||||||
|
```
|
||||||
|
|
||||||
|
## Development
|
||||||
|
To contribute to the development of this application:
|
||||||
|
|
||||||
|
1. Fork the repository
|
||||||
|
2. Create a feature branch
|
||||||
|
3. Make your changes
|
||||||
|
4. Submit a pull request
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
The application uses React Testing Library for testing. Run tests with:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm test
|
||||||
|
```
|
||||||
|
|
||||||
|
## Analytics and Monitoring
|
||||||
|
The application is configured with Google Analytics for tracking user interactions and application usage. This includes:
|
||||||
|
- Page view tracking
|
||||||
|
- User behavior monitoring
|
||||||
|
- Performance metrics collection
|
||||||
|
|
||||||
|
Additional monitoring tools can be integrated as needed through the analytics configuration.
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
### User Documentation
|
||||||
|
- [User Guide](#user-guide) - How to navigate and use the application
|
||||||
|
- [Search Guide](#search-guide) - How to search through jargon entries
|
||||||
|
|
||||||
|
### Technical Documentation
|
||||||
|
- [API Documentation](#api-documentation) - Available endpoints
|
||||||
|
- [Code Structure](#code-structure) - How the codebase is organized
|
||||||
|
- [Deployment Guide](#deployment-guide) - How to deploy the application
|
||||||
|
|
||||||
|
### User Guide
|
||||||
|
1. **Home Page**: Browse all jargon entries
|
||||||
|
2. **Entry Detail**: View a single entry with all its information
|
||||||
|
3. **Search**: Find entries by term or definition
|
||||||
|
4. **Navigation**: Use the header navigation to move between sections
|
||||||
|
|
||||||
|
### Search Guide
|
||||||
|
Use the search bar to find specific jargon terms:
|
||||||
|
- Search by term: "Hacker"
|
||||||
|
- Search by definition: "A person who enjoys exploring"
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests.
|
||||||
|
|
||||||
|
## License
|
||||||
|
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
||||||
40
package.json
Normal file
40
package.json
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
{
|
||||||
|
"name": "jargon-file-explorer",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"private": true,
|
||||||
|
"dependencies": {
|
||||||
|
"react": "^18.2.0",
|
||||||
|
"react-dom": "^18.2.0",
|
||||||
|
"react-router-dom": "^6.8.0",
|
||||||
|
"react-scripts": "5.0.1"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"start": "react-scripts start",
|
||||||
|
"build": "react-scripts build",
|
||||||
|
"test": "react-scripts test",
|
||||||
|
"eject": "react-scripts eject",
|
||||||
|
"lint": "eslint src/**/*.{js,jsx} --fix"
|
||||||
|
},
|
||||||
|
"eslintConfig": {
|
||||||
|
"extends": [
|
||||||
|
"react-app",
|
||||||
|
"react-app/jest"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"browserslist": {
|
||||||
|
"production": [
|
||||||
|
">0.2%",
|
||||||
|
"not dead",
|
||||||
|
"not op_mini all"
|
||||||
|
],
|
||||||
|
"development": [
|
||||||
|
"last 1 chrome version",
|
||||||
|
"last 1 firefox version",
|
||||||
|
"last 1 safari version"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"eslint": "^8.38.0",
|
||||||
|
"eslint-plugin-react": "^7.32.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user