A modern, flexible evaluation platform for educational assessments and question grading.
EvalBuddy is a web-based application built with Nuxt 3 that provides educators with a comprehensive tool for evaluating responses to questions. The platform supports multiple evaluation methodologies, from simple binary assessments to complex mastery-level evaluations with custom scoring systems. The tool uses IndexedDB for local data storage, ensuring fast and reliable performance with 100% local data handling.
- Node.js 18+
- npm or yarn package manager
-
Clone the repository
git clone <repository-url> cd evalbuddy
-
Install dependencies
npm install
-
Start development server
npm run dev
-
Access the application Open your browser to
http://localhost:3000
# Build for production
npm run build
# Generate static files
npm run generate
# Preview production build
npm run preview- Navigate to the Configurations page
- Click New Configuration
- Choose your evaluation type:
- Mastery Levels: For competency-based assessment
- Correct/Incorrect: For simple binary evaluation
- Numeric Score: For point-based grading
- Configure settings specific to your chosen type
- Set comment requirements (optional/required/disabled)
- From the home page, click Create Evaluation
- Select an evaluation configuration (or use default)
- Import a JSON file containing your questions
- The session will be created and ready for evaluation
Datasets should be provided as a JSON object with the following structure:
{
"context": {
"course": "Geography Assessment",
"level": "Intermediate",
"date": "2025-01-14",
"instructor": "Prof. Smith"
},
"questionList": [
{
"id": 1,
"question": "What is the capital of France?",
"referenceAnswer": "The capital of France is Paris.",
"difficulty": "easy",
"context": {
"topic": "European Geography",
"points": "10",
"categories": ["Capitals", "Geography", "Basic Knowledge"]
}
}
],
"items": [
{
"id": 1,
"questionID": 1,
"submittedAnswer": "Paris is the capital of France.",
"context": {
"studentId": "student_001",
"studentName": "Alice Johnson",
"submissionTime": "2025-01-14T10:00:00Z",
"attempt": "1"
}
}
]
}Dataset Structure:
context: Optional metadata about the dataset (course info, dates, etc.)questionList: Array of question definitionsitems: Array of evaluation items (student submissions)
Question Fields:
id: Unique identifier for the question (number)question: The question textreferenceAnswer: Optional - the correct/expected answer (string)difficulty: Optional - one of "easy", "medium", or "hard"context: Optional metadata (supports string and string[] values for better display)
Evaluation Item Fields:
id: Unique identifier for the evaluation item (number)questionID: References the question this item belongs tosubmittedAnswer: The student's submitted answercontext: Optional metadata (supports string and string[] values for better display)
- Open an evaluation session
- Review each question and the submitted answer
- Select your evaluation (mastery level, score, or boolean)
- Add comments if enabled
- Navigate between questions using the question navigator
- Track progress with the built-in progress indicators
The application supports multiple languages through Vue I18n:
- English (
en): Complete translation - French (
fr): Complete translation (default)
To add a new language:
- Create a new locale file in
i18n/locales/ - Add the locale configuration in
nuxt.config.ts - Translate all required keys
This project is licensed under the terms specified in the LICENSE file.
Contributions are welcome! Please feel free to submit a Pull Request.
For questions or support, please open an issue in the repository.