Project forked from: https://github.com/marcin-filipiak/cpp_studentmachine
I wanted to make this fork to see how well pairing it up with NixOS would work.
- graphical environment
- C and C++ compiler
- Python interpreter
- Vscodium (Open Source binaries for vs code)
- build tools (make, cmake, ninja, meson)
- firefox
- add support for LAMP stack like on the original
- take a look at template and excercise scripts to see if they need updating
- update the manual
- actually upload the vm image and replace the link
The "STUDENT MACHINE" program is a tool written in C++ that provides a simple interface for users to manage a programming project on GitHub. Student need to work own github account and repository "student_projects".
Here's an overview of the program's functionality from the user's perspective:
To run the program, follow these steps:
- Open a terminal.
- Navigate to the directory where the studentmachine executable is located.
- Run the program by typing the following command and providing a parameter:
studentmachine [command]
Replace [command] with one of the command.
For example, to install the required tools, you would run:
studentmachine install
Command: install
Functionality: Installs necessary software packages and updates the application to the latest version.
Command: update
Functionality: Checks and updates the application to the latest version from a specified GitHub repository.
Command: systemup
Functionality:
- Clears existing student projects and system history.
- Optionally registers GitHub credentials (login and email).
- Downloads and registers SSH keys from a specified keyring.
- Configures Git with the provided GitHub login and email.
- Clones the GitHub repository for student projects.
Command: savework
Functionality:
- Loads GitHub login and email from configuration files.
- Commits changes to the local Git repository in student_projects.
- Pushes changes to the GitHub repository.
Command: templates
Functionality: Downloads project templates, runs a script to configure the workspace according to the template, and creates symbolic links.
Command: exercise [exercise_name]
Functionality: Downloads a specific exercise, extracts it, runs a script to configure the exercise, and cleans up after the configuration.
Command: systemdown
Functionality:
- Loads GitHub login and email from configuration files.
- Commits changes to the local Git repository in student_projects.
- Optionally pushes changes to the GitHub repository.
- Cleans up SSH keys.
- Shuts down the machine.ation files.
- Commits changes to the local Git repository in student_projects.
- Pushes changes to the GitHub repository.
Vitrual Machine:
Virtual Machine for VirtualBox 7.0, NixOS with integrated StudentMachine and lxqt installed
Official keyring server for StudentMachine where you can find your public key (need to import in Github) http://api.noweenergie.org/application/StudentMachine/keyring/