typiqally / epsilon Goto Github PK
View Code? Open in Web Editor NEWThe tool for validating and exporting your learning outcomes into a desirable format.
License: GNU General Public License v3.0
The tool for validating and exporting your learning outcomes into a desirable format.
License: GNU General Public License v3.0
At the moment the releases contain multiple files.
Only the Epsilon.Cli.exe
and the appsettings.json
are file that the user interacts with.
Seeking for an solution that will reduce the included files.
It would be nice to also be able to generate a LaTeX table from the KPI's for people who are creating their competency document using LaTeX.
Creating a GitHub action workfile that will create draft releases and add artefacts to the draft release.
Sources
Currently, the code is very prone to nulls and errors if something is not quite right such as Canvas downtime or faults with the authentication. We should implement some proper null checks and error validation to ensure the user can see what has gone wrong and maybe provide a link to this issue board to post it for the contributors to fix. This may also be combined with some initial tests.
The final aim of the project is to generate a competency document with as little human intervention as possible. To achieve this goal, it is a good idea to implement an exporter for Word files that can export achieved KPIs in the form of a table.
I propose that the next step for Epsilon is generating the competence matrix shown below.
In my opinion, we should make this available for at least Excel and if possible Word, keeping in mind the goal of this project: automating the entire competence document. Optional is LaTeX, which is a niche feature but would still be helpful for some Deltas at least.
So in summary then, create an export pipeline for generating competence matrices together with KPI tables in the following formats:
Within the security tab, 13 warnings are mentioned, These will need to be fixed
After the addition of the export architecture (#5), we can add more file types to the export functionality. This issue is regarding the Excel data exporter.
The colors of the download menu are weird. The dates and actions are bearly readable and the colors look weird.
at: https://github.com/Typiqally/epsilon/wiki/How-to-use#5-export-your-kpis
To export your KPIs, you need to execute the Epsilon.Cli.exe file within a command prompt. .\Epsilon.Cli.exe --Export:Formats:0 CSV
CSV should be lowercase eg: csv. The same goes for XLS, must be xls.
Currently, the data format that is needed for all the exports and future views is built inside the exports themselves.
This logic will need to be moved to the main logic of the application so it can be used more efficiently.
It needs to be a function that can be called to reformat the data that is given. NOT override the existing data
Creating a CI pipeline that will build the project for Windows, Linux and Mac use.
The pipeline needs to publish artefacts
If possible it would be nice that the CI pipeline creates new releases when the main branch is updated
At the moment Epsilon reads all the information in a course regardless of who turned it in and who got the grade.
There needs to be a validation that will ensure that all KPIs are from the right person.
The KPI-matrix table needs to be implemented and show which kpi is proven in what project.
Researching the possibilities to implement Epsilon inside Canvas with the help of an LTI:
The "Downloading results..." message can take a real long time. Maybe add like a "fake" progress bar so people don't think its frozen
Adjust the project plan to include the broader scope of the project
The main logic of the application is now held inside the Epsilon.Cli
project.
It is best that we separate the CLI and the main Logic.
When we separate these two the application is more open for future development.
When the settings are not defined in the appsettings.json
file.
The published program errors out without giving a good error message.
Inside the current competence document there are three colors used to indicate the level of a KPI.
These colors should be used more in the document and can be used in the KPI-Matrix and KPI-table
.NET 7.0 just released, meaning we should update at least the CLI to support this newer version, as the CLI is runtime dependent. I think we should also think about multiversional .NET support, meaning we should support multiple .NET versions such as 5, 6 and 7.
Improve the oAuth flow for the CLI application.
The user needs now to get an access token by themselves and place them in the correct file.
Look if it is possible to redirect the user to canvas when no credentials exist.
An that the user will enter a generated access token. The application would then create the required config file.
Can there be a few flags to specify more or other assignments? It would be nice to be able to get assignments with certain statuses or a getall function for assignments that have not been graded.
Epsilon binaries are currently published as zip archives. These ZIP archives require an extra extraction step before Epsilon can be used. This can be greatly inconvenient, especially when trying to update to the latest version of Epsilon.
One proposed solution to this issue is to release the binary without compressing it into a zip archive. This causes one issue, which is the missing configuration file. It may be possible to resolve this issue by creating a default configuration file when one does not already exist.
Currently, specifying formatters is quite awkward, having to use long arguments such as --export:formats:0
. This has to be improved with an easier implementation.
Currently, the application has no infrastructure to test and validate that the application is always working.
It is therefore paramount that tests are added to the application.
Currently, the exporters return void when finished. This is something that is not sustainable when moving to an API application.
The export functions will need to return a value that will represent the contents or the exported file itself.
Importantly it can not be a string representing the location of the file.
The creation of a production build version of the application.
The production build can be a user interface or a CLI application.
The application will need a workflow
What will it be? User interface or CLI?
Giving the user the option to filter listed modules to export.
This gives the user the option to export only data from a suratun semester
Fetching results from Canvas takes a long time, while not always being necessary. If I perform a run and decide I want to export it in a different format, I have to wait for the requests to finish again. This even though nothing was probably changed in the last 5 minutes or maybe even an hour. Therefore, I think we should implement an expiration policy on the Canvas results and apply caching on it.
For example, if we perform a run and the results are not older than an hour, then we reuse them. If they are older, we fetch the latest version from Canvas. This can also be overridden by using a --no-cache
parameter option for example.
Maybe it's not necessary for now, since runs are not very frequent at the moment. For the future this might change however, if we create an online webpage which can be accessed by peer students and teachers.
At this moment there are multiple libraries used to create export files.
Open_XML-SDK has support for, word documents and spreadsheets. It is an open-source lib created by the Office developer team from Microsoft.
This is for now maybe a nice to have. But with more features, this lib has. It can become a need when more features are required
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.