Skip to content

Commit 661bae1

Browse files
Merge pull request #15 from foundersandcoders/chore/2025-schema-update
2025 Update
2 parents e494b71 + ea3b77f commit 661bae1

19 files changed

+5295
-961
lines changed

.DS_Store

-2 KB
Binary file not shown.

.gitignore

Lines changed: 65 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,66 @@
1-
node_modules
1+
# Dependencies
2+
node_modules/
3+
npm-debug.log*
4+
yarn-debug.log*
5+
yarn-error.log*
6+
package-lock.json.bak
7+
8+
# Application files
29
data.xml
3-
out/
10+
11+
# Build outputs
12+
out/
13+
dist/
14+
*.tgz
15+
*.tar.gz
16+
17+
# Electron build artifacts
18+
.electron-prebuilt/
19+
app/
20+
release-builds/
21+
22+
# OS generated files
23+
.DS_Store
24+
.DS_Store?
25+
._*
26+
.Spotlight-V100
27+
.Trashes
28+
ehthumbs.db
29+
Thumbs.db
30+
31+
# IDE files
32+
.vscode/
33+
.idea/
34+
*.swp
35+
*.swo
36+
*~
37+
38+
# Logs
39+
logs/
40+
*.log
41+
electron-debug.log
42+
43+
# Runtime data
44+
pids/
45+
*.pid
46+
*.seed
47+
*.pid.lock
48+
49+
# Coverage directory used by tools like istanbul
50+
coverage/
51+
.nyc_output/
52+
53+
# Environment variables
54+
.env
55+
.env.local
56+
.env.development.local
57+
.env.test.local
58+
.env.production.local
59+
60+
# Temporary files
61+
tmp/
62+
temp/
63+
.tmp/
64+
65+
# Claude Code configuration
66+
.claude/

README.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
# ILR_File_Creator
1+
# ILR_File_Creator
2+
3+
## Overview
24

3-
## Overview:
45
The DFE tool for creating XML files that can be uploaded to their website is slow and limited in its function. My organization an Airtable that contains all the information it asks for but its hard to move all that information into the DFE tool. To fix this we built a new ILR tool that takes the CSV values generated from our Airtable and processes them to a XML file automatically. If you want to create a similar Airtable or Excell document that can be fed into this tool a CSV for creating one is at the bottom of the readme. This project is an electron application and following the set up instruction will create an app for whatever operating system you build it on. If you want to make aplications for other operating systems more information about distributing electron apps with electron forge can be found [here]([url](https://www.electronforge.io/)).
56

67
## User Stories
@@ -9,19 +10,15 @@ The DFE tool for creating XML files that can be uploaded to their website is slo
910
* App will tell user if there are any empty or missing fields in the CSV list
1011
* App will return a XML file to the user thats structure matches that required by the DFE
1112

12-
* ## Libraires Used
13+
## Libraries Used
1314

1415
* electron
15-
1616
* electron forge
17-
1817
* xmllint
19-
2018
* papaparse
2119

22-
23-
2420
## Usage
21+
2522
This repo can be used to update and create copies of the ILR tool app. Bellow I will give general instructions for making creating copies of the app and how to update the tool when the ILR produces new versions. (note I can not account for everything they might change in a version and future users may need to update the code to account for changes made in a new academic year) Finally I will provide instructions for how to use the app and organize your table.
2623

2724
### Set Up
@@ -52,20 +49,23 @@ npm run package
5249
# Builds app
5350
npm run make
5451
```
55-
After running these commands you should see something like in your code editor
56-
![a picture of file structures](image.png)
52+
53+
After running these commands you should see something like in your code editor
54+
![a picture of file structures](images/image.png)
5755

5856
The app will appear within the make folder which is inside the out folder. In this photo I am making a mac os version so we have a Darwin zip file and a .dmg file but the exact outputs will vary depending on your computer. You can left click to open these in your finder and then copy them to wherever you want to use them from.
5957

6058
### Updating With ILR Tool
61-
When the academic year changes and the official ILR application is updated along with the schema you will need to make at lease two adjustments to this project.
59+
60+
When the academic year changes and the official ILR application is updated along with the schema you will need to make at lease two adjustments to this project.
6261

6362
First go on the DFE website and find the schema for the current academic years XMLS. They can usually be found somewhere within [this part](https://guidance.submit-learner-data.service.gov.uk/) of the DFE website. Once you find the schema copy its content and use it to replace the content of schemafile.xsd, which is the 2024-25 version of the schema.
6463

6564
2nd, download the official version of the ILR application on a windows computer. Left click on it and look at the application information to find the version it should be something like 2425.1.49.0 (note there is a shorter version of this version code displayed in application when you open it you want the long version) Keep this version code on hand since the ILR tool will require it to be input along with the CVS.
6665

67-
### Application Usage
66+
### Application Usage
67+
6868
When you open the application it asks for the version code discussed above and a CSV (more details bellow). Once these are supplied the tool will display error messages and warnings. Warnings are fine and one or two are usually produced but if there are errors you wont be able to upload to the DFE's website until they are resolved. (you will get the line in the XML where there error is to help find it) You can click a button to download this XML file to your computer and then upload it to the DFE website. I want to end this by saying how to organize your table so it produces the correct CSV files. The columns should be as follows in the exact order. If you dont have information for a row leave it blank do not put in place holder values.
6969

7070
Use this CVS file to organize your data
71-
[ ILR data export(template) .csv](https://github.com/user-attachments/files/19339597/ILR.data.export.template.csv)
71+
[ ILR data export(template).csv](https://github.com/user-attachments/files/19339597/ILR.data.export.template.csv)

errorDecoderInformation.md renamed to docs/ErrorDecoder.md

Lines changed: 62 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
# Intro
2-
When data is stored in the XML or errors are output by the tool they use different names than the aritable. To help clarify bellow are two lists. One of all the rows in the aritable and their numbers. The other has all the data as it is entered into the system or output as errors as well as the row number from which it is fed. By looking at these two lists you should be able to interpret errors. You can figure out what row is being referred to by looking for the airtable row name with the same number (for example PHours has number 42 the same as Planned hours (aim 1) so you can tell that is what it means). It will also help if in the future there seems to be some sort of mix up to double check things are going to the right place.
3-
4-
# Data as it goes into XML
1+
# Error Decoder
52

3+
When data is stored in the XML or errors are output by the tool they use different names than the aritable. To help clarify bellow are two lists. One of all the rows in the aritable and their numbers. The other has all the data as it is entered into the system or output as errors as well as the row number from which it is fed. By looking at these two lists you should be able to interpret errors. You can figure out what row is being referred to by looking for the airtable row name with the same number (for example PHours has number 42 the same as Planned hours (aim 1) so you can tell that is what it means). It will also help if in the future there seems to be some sort of mix up to double check things are going to the right place.
64

5+
## Data as it goes into XML
76

87
2. ULN: index 2
98
3. FamilyName: index 4
@@ -19,78 +18,72 @@ When data is stored in the XML or errors are output by the tool they use differe
1918
13. TelNo: index 12 (optional)
2019
14. LLDDHealthProb: index 13 (converted to 1 or 9)
2120
15. PriorAttain:
22-
- PriorLevel: index 15
23-
- DateLevelApp: index 14
24-
21+
- PriorLevel: index 15
22+
- DateLevelApp: index 14
2523
16. LLDDandHealthProblem:
26-
- LLDDCat: index 13
27-
- PrimaryLLDD: hardcoded as 1
28-
24+
- LLDDCat: index 13
25+
- PrimaryLLDD: hardcoded as 1
2926
17. LearnerEmploymentStatus (First Employment Entry):
30-
- EmpStat: index 18
31-
- DateEmpStatApp: index 17
32-
- EmpId: index 19 (optional)
33-
- EmploymentStatusMonitoring:
34-
- LOE (ESMType): index 23
35-
- EII (ESMType): index 24
36-
- LOU (ESMType): index 25
37-
- SEI (ESMType): index 21
38-
- SEM (ESMType): index 20
39-
- OET (ESMType): index 22
40-
27+
- EmpStat: index 18
28+
- DateEmpStatApp: index 17
29+
- EmpId: index 19 (optional)
30+
- EmploymentStatusMonitoring:
31+
- LOE (ESMType): index 23
32+
- EII (ESMType): index 24
33+
- LOU (ESMType): index 25
34+
- SEI (ESMType): index 21
35+
- SEM (ESMType): index 20
36+
- OET (ESMType): index 22
4137
18. LearnerEmploymentStatus (Second Employment Entry):
42-
- EmpStat: index 27
43-
- DateEmpStatApp: index 26
44-
- EmpId: index 28 (optional)
45-
- EmploymentStatusMonitoring:
46-
- EII (ESMType): index 29
47-
- LOE (ESMType): index 33
48-
- SEI (ESMType): index 31
49-
- SEM (ESMType): index 32
50-
- OET (ESMType): index 30
51-
38+
- EmpStat: index 27
39+
- DateEmpStatApp: index 26
40+
- EmpId: index 28 (optional)
41+
- EmploymentStatusMonitoring:
42+
- EII (ESMType): index 29
43+
- LOE (ESMType): index 33
44+
- SEI (ESMType): index 31
45+
- SEM (ESMType): index 32
46+
- OET (ESMType): index 30
5247
19. LearningDelivery:
53-
- LearnAimRef: index 35
54-
- AimType: index 34
55-
- LearnStartDate: index 36
56-
- LearnPlanEndDate: index 37
57-
- FundModel: index 38
58-
- PHours: index 42 (optional)
59-
- OTJActHours: index 43 (optional)
60-
- ProgType: index 39
61-
- StdCode: index 40 (optional)
62-
- DelLocPostCode: index 41
63-
- EPAOrgID: index 45 (optional)
64-
- ConRefNumber: index 44 (optional)
65-
- CompStatus: index 60 (optional)
66-
- LearnActEndDate: index 61 (optional)
67-
- WithdrawReason: index 64 (optional)
68-
- Outcome: index 63 (optional)
69-
- AchDate: index 62 (optional)
70-
- OutGrade: index 65 (optional)
71-
48+
- LearnAimRef: index 35
49+
- AimType: index 34
50+
- LearnStartDate: index 36
51+
- LearnPlanEndDate: index 37
52+
- FundModel: index 38
53+
- PHours: index 42 (optional)
54+
- OTJActHours: index 43 (optional)
55+
- ProgType: index 39
56+
- StdCode: index 40 (optional)
57+
- DelLocPostCode: index 41
58+
- EPAOrgID: index 45 (optional)
59+
- ConRefNumber: index 44 (optional)
60+
- CompStatus: index 60 (optional)
61+
- LearnActEndDate: index 61 (optional)
62+
- WithdrawReason: index 64 (optional)
63+
- Outcome: index 63 (optional)
64+
- AchDate: index 62 (optional)
65+
- OutGrade: index 65 (optional)
7266
20. LearningDeliveryFAM:
73-
- FFI (LearnDelFAMType): index 50
74-
- SOF (LearnDelFAMType): index 51
75-
- Contract Type:
76-
- LearnDelFAMType: index 46
77-
- LearnDelFAMCode: index 47
78-
- LearnDelFAMDateFrom: index 48 (optional)
79-
- LearnDelFAMDateTo: index 49 (optional)
80-
67+
- FFI (LearnDelFAMType): index 50
68+
- SOF (LearnDelFAMType): index 51
69+
- Contract Type:
70+
- LearnDelFAMType: index 46
71+
- LearnDelFAMCode: index 47
72+
- LearnDelFAMDateFrom: index 48 (optional)
73+
- LearnDelFAMDateTo: index 49 (optional)
8174
21. AppFinRecord:
82-
- First Financial Record:
83-
- AFinType: index 52
84-
- AFinCode: index 53 (optional)
85-
- AFinDate: index 54 (optional)
86-
- AFinAmount: index 55 (optional)
87-
- Second Financial Record:
88-
- AFinType: index 56
89-
- AFinCode: index 57 (optional)
90-
- AFinDate: index 58 (optional)
91-
- AFinAmount: index 59 (optional)
75+
- First Financial Record:
76+
- AFinType: index 52
77+
- AFinCode: index 53 (optional)
78+
- AFinDate: index 54 (optional)
79+
- AFinAmount: index 55 (optional)
80+
- Second Financial Record:
81+
- AFinType: index 56
82+
- AFinCode: index 57 (optional)
83+
- AFinDate: index 58 (optional)
84+
- AFinAmount: index 59 (optional)
9285

93-
# Data as it is displayed in the airTable
86+
## Data as it is displayed in the airTable
9487

9588
0. Record
9689
1. Previous UKPRN
@@ -286,4 +279,3 @@ When data is stored in the XML or errors are output by the tool they use differe
286279
191. Withdrawal reason (aim 5)
287280
192. Outcome (aim 5)
288281
193. Outcome grade (aim 5)
289-
47.6 KB
Binary file not shown.
File renamed without changes.

0 commit comments

Comments
 (0)