This is a web-based application to extract the text from Moodle pages and SCORM activities from Moodle backup files (.mbz) and convert them into a .docx document.
The application uses a React-based frontend for the user interface and a Node.js backend for file handling and conversion.
- Node.js
- npm
-
Clone this repository:
git clone https://github.com/jschof1/moodle-course-extractor.git
-
Navigate into the project directory:
cd moodle-course-extractor
-
Install the dependencies for the server:
cd server npm install
-
Install the dependencies for the client:
cd client npm install
-
Start the backend server:
cd server npm start
The backend server will start on
http://localhost:1001
. -
In a new terminal, start the frontend client:
cd client npm run dev
The frontend client will start on
http://localhost:5174
.
- On the homepage, click the "Upload" button and select the Moodle backup file (.mbz) that you wish to convert. Note: If your Moodle backup file has a .mbz extension, you will first need to change the file extension to .zip, then rezip the contents of the archive.
- Click the "Download" button. The application will upload the file, extract the relevant contents, convert them to a .docx format, and initiate a download of the resulting document.
.
├── client
│ ├── README.md
│ ├── index.html
│ ├── package-lock.json
│ ├── package.json
│ ├── public
│ │ └── vite.svg
│ ├── src
│ │ ├── App.css
│ │ ├── App.jsx
│ │ ├── assets
│ │ │ └── react.svg
│ │ ├── index.css
│ │ └── main.jsx
│ └── vite.config.js
├── output
│ └── output.docx
└── server
├── README.md
├── package-lock.json
├── package.json
├── route.js
└── xml-to-html.js
- The
client
directory contains the frontend of the application, created with React. The entry point of the application ismain.jsx
and the main application component is inApp.jsx
. - The
server
directory contains the backend of the application, implemented with Node.js. The main server file isroute.js
, which handles the file upload, extraction, and conversion processes. - The
output
directory is where the converted .docx file will be saved.
- React
- Node.js
- Express
- Multer
- Unzipper
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
See also the list of contributors who participated in this project.