A web-based participatory framework tool that implements the Semiotic Ladder framework proposed by Ronald Stamper, integrated with Pressman's Software Engineering Layers. This tool facilitates the development of educational software through structured semiotic modeling and participatory design approaches.
FS.Edu (Semiotic Framework for Software Education) is a participatory framework designed to help software engineers and developers in the development of software for the educational domain. The tool takes into account human information functions and IT platform aspects, providing a structured approach to educational software development through semiotic modeling and visualization.
- π Semiotic Ladder Integration: Based on Liu's Semiotic Framework (2000) and Pressman's Software Engineering Layers
- π Interactive Question System: Guided questionnaires organized by semiotic groups and steps
- π Document Generation: Export responses as PDF documents in multiple formats
- π Multilingual Support: Available in English and Portuguese (Brazil)
- πΎ Data Management: Import/export answers in XML format
- π¨ Modern UI: Bootstrap-based responsive interface
- π± Client-Side Only: Runs entirely in the browser with no backend required
- Frontend: React 19.1.0 with Vite
- Styling: Bootstrap 5.3.7 + SASS
- Rich Text Editing: ReactQuill (react-quill-new)
- PDF Generation: html2pdf.js
- Build Tool: Vite 6.3.5
- Linting: ESLint 9
- Node.js (version 16 or higher)
- npm or yarn package manager
-
Clone the repository
git clone https://github.com/auri-gabriel/semiotic-framework-tool.git cd semiotic-framework-tool -
Install dependencies
npm install
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:5173to access the application.
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLint
npm run headers:add # Add SPDX/author headers to source filesUse npm run headers:add to insert standard copyright/license headers in source files.
- Applies only to
src/**/*.js,src/**/*.jsx,src/**/*.scss, and root*.js/*.jsxconfig files. - Ignores third-party/generated paths such as
node_modules/,dist/,out/, andpublic/fonts/. - Is idempotent: files that already contain
SPDX-License-Identifier: GPL-3.0-onlyare not modified.
This repository follows a lightweight Git Flow-style process:
feature/*branches: new work starts heredevelopbranch: integration branch for completed featuresmainbranch: production branch
- CI (
.github/workflows/ci.yml) runs on pushes tofeature/*,develop, andmain, and on pull requests todevelop/main. - CI validates commit messages against Conventional Commits.
- CI validates code quality with
npm ci,npm run lint, andnpm run build. - Release + deploy (
.github/workflows/release-deploy.yml) runs automatically on pushes tomain(typically after mergingdevelopintomain). - On that push, the workflow uses semantic versioning (from commit messages) to create a GitHub Release and then deploys
dist/to GitHub Pages.
Use Conventional Commits so versioning is computed automatically:
feat:-> minor version bumpfix:-> patch version bumpBREAKING CHANGE:(ortype!:) -> major version bump
Examples: feat(auth): add SSO login, fix(pdf): prevent empty export, feat!: redesign XML schema.
Choose between English and Portuguese (Brazil) using the language selector in the navigation bar.
- Navigate to the "Start" section
- Expand semiotic groups and steps to reveal questions about your educational software project
- Use the rich text editor to provide detailed answers about requirements, design, and implementation
- Track your progress with the answer counters
- Use the bottom toolbar to export your responses
- Choose between "Semiotic Ladder" or "Engineering Layers" format
- Select whether to include only answered questions
- Generate PDF documents with your educational software development analysis
- Export: Save your answers as XML files for backup
- Import: Load previously saved XML answer files
- Clear: Reset all answers to start fresh
src/
βββ business/ # Business logic layer
β βββ SemioticLadderManager.js
βββ data/ # Data layer
β βββ config.js # Configuration settings
β βββ assets/ # Static assets and definitions
β βββ services/ # Data services
β βββ EngineeringLayersService.js
β βββ HtmlTemplateService.js
β βββ PdfService.js
β βββ SemioticLadderService.js
β βββ XmlReaderService.js
β βββ XmlService.js
βββ presentation/ # Presentation layer
βββ App.jsx # Main application component
βββ components/ # React components
βββ contexts/ # React contexts
βββ hooks/ # Custom React hooks
βββ scss/ # Stylesheets
The tool is based on two main theoretical frameworks for educational software development:
- Semiotic Ladder (Liu, 2000): A framework for understanding information systems through semiotic analysis, applied to educational software contexts
- Pressman's Software Engineering Layers: Structured approach to software engineering processes, specifically adapted for educational software development
This tool, authored by Auri Gabriel Castro de Melo under the supervision of Amanda Meincke Melo, is a product of the project "Participatory Design integrated with Software Engineering: a framework for software development in the educational domain," registration number 2023.PE.AL.1752, linked to the GEInfoEdu Research Group - Study Group on Informatics in Education.
This project is developed as part of the GEInfoEdu Research Group and welcomes contributions:
Professors:
- Prof. Dr. Aline Vieira de Mello (Alegrete Campus)
- Prof. Dr. Amanda Meincke Melo (Alegrete Campus) β Research Group Leader
- Prof. Dr. Jean Felipe Patikowski Cheiran (Alegrete Campus)
Students:
- Auri Gabriel Castro de Melo (Software Engineering)
- Renilson Pereira Torres (Computer Science, PIBIC-Af 2024)
- Gabriel Souza Rodrigues de Amorim (Software Engineering, PRO-IC MC 2023)
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
For questions, suggestions, or collaboration opportunities, please contact the GEInfoEdu Research Group.
- Liu, K. Semiotics in Information Systems Engineering. Cambridge, England: Cambridge University Press, 2000.
- Pressman, R. S., & Maxim, B. R. Software Engineering: A Practitioner's Approach. 8th ed. McGraw-Hill, 2016.
Note: This tool runs entirely in the browser and does not require any server-side setup. All data processing is performed client-side, ensuring privacy and ease of deployment.