sunbird-saral / project-saral Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
-> when i am scanning 50 students for save marks and using skip functionality then it is replacing student info with null .
Multipage support for layouts where questions will be split across multiple pages - To be reviewed
trained_resnet_model_v2_10.tflite support:
Below exception thrown when trying to use v2_10.tflite in the app.
2021-11-18 16:20:24.337 4708-13961/? W/ExynosCameraSec: [CAM(0)][Back_0]-(m_getSensorListenerData[31474]):skip the Rotation data. ret -11
2021-11-18 16:20:24.343 3452-3452/com.saralapp W/System.err: com.google.firebase.ml.common.FirebaseMLException: Internal error has occurred when executing Firebase ML tasks
2021-11-18 16:20:24.343 4688-4688/? D/gralloc: [mali_gralloc_allocate] begin
2021-11-18 16:20:24.343 4688-4688/? D/gralloc: buffer_descriptor: wh(2131 1017) usage_pc(0x966 0x906) hal_format(0x4) layer_count(1) sizes(0 0 0) strde(0) byte_stride(0) alloc_wh(0 0) internal_format(0x0) alloc_format(0x0) fd_count(1) plane_count(0)
2021-11-18 16:20:24.344 3452-3452/com.saralapp W/System.err: at com.google.android.gms.internal.firebase_ml.zzpf.zza(com.google.firebase:firebase-ml-common@@22.0.1:38)
2021-11-18 16:20:24.344 3452-3452/com.saralapp W/System.err: at com.google.android.gms.internal.firebase_ml.zzpe.run(Unknown Source:4)
2021-11-18 16:20:24.344 3452-3452/com.saralapp W/System.err: at android.os.Handler.handleCallback(Handler.java:938)
2021-11-18 16:20:24.345 3452-3452/com.saralapp W/System.err: at android.os.Handler.dispatchMessage(Handler.java:99)
2021-11-18 16:20:24.345 4688-4688/? D/gralloc: [mali_gralloc_allocate] allocation successful
2021-11-18 16:20:24.345 3452-3452/com.saralapp W/System.err: at com.google.android.gms.internal.firebase_ml.zze.dispatchMessage(com.google.firebase:firebase-ml-common@@22.0.1:6)
2021-11-18 16:20:24.345 3452-3452/com.saralapp W/System.err: at android.os.Looper.loop(Looper.java:246)
2021-11-18 16:20:24.345 3452-3452/com.saralapp W/System.err: at android.os.HandlerThread.run(HandlerThread.java:67)
2021-11-18 16:20:24.346 3452-3452/com.saralapp W/System.err: Caused by: java.lang.IllegalArgumentException: Cannot copy between a TensorFlowLite tensor with shape [1, 11] and a Java object with shape [1, 10].
2021-11-18 16:20:24.346 5086-7449/? I/EDMNativeHelperService: isCameraEnabled
2021-11-18 16:20:24.347 3452-3452/com.saralapp W/System.err: at org.tensorflow.lite.Tensor.throwExceptionIfTypeIsIncompatible(Tensor.java:242)
2021-11-18 16:20:24.347 5086-7449/? D/EDMNativeHelper: isCameraEnabled
2021-11-18 16:20:24.347 3452-3452/com.saralapp W/System.err: at org.tensorflow.lite.Tensor.copyTo(Tensor.java:116)
2021-11-18 16:20:24.347 3452-3452/com.saralapp W/System.err: at org.tensorflow.lite.NativeInterpreterWrapper.run(NativeInterpreterWrapper.java:157)
2021-11-18 16:20:24.347 3452-3452/com.saralapp W/System.err: at org.tensorflow.lite.Interpreter.runForMultipleInputsOutputs(Interpreter.java:250)
2021-11-18 16:20:24.348 3452-3452/com.saralapp W/System.err: at com.google.android.gms.internal.firebase_ml.zzqw.runForMultipleInputsOutputs(com.google.firebase:firebase-ml-model-interpreter@@22.0.1:4)
2021-11-18 16:20:24.348 3452-3452/com.saralapp W/System.err: at com.google.android.gms.internal.firebase_ml.zzqo.zza(com.google.firebase:firebase-ml-model-interpreter@@22.0.1:85)
2021-11-18 16:20:24.348 3452-3452/com.saralapp W/System.err: at com.google.android.gms.internal.firebase_ml.zzqo.zza(com.google.firebase:firebase-ml-model-interpreter@@22.0.1:147)
2021-11-18 16:20:24.348 5086-7449/? D/EDMNativeHelper: checking for camera in EnterpriseDeviceManagerService
2021-11-18 16:20:24.348 5086-7449/? D/EnterpriseDeviceManagerService: isCameraEnabledNative
2021-11-18 16:20:24.349 5086-7449/? D/EnterpriseDeviceManagerService: checking for camera in restriction policy
2021-11-18 16:20:24.349 3452-3452/com.saralapp W/System.err: at com.google.android.gms.internal.firebase_ml.zzpj.zza(com.google.firebase:firebase-ml-common@@22.0.1:31)
2021-11-18 16:20:24.349 5086-7449/? D/RestrictionPolicy: isCameraEnabled ret(true) userId(0) cxtInfo.mCallerUid(10499) cxtInfo.mContainerId(0)
2021-11-18 16:20:24.349 3452-3452/com.saralapp W/System.err: at com.google.android.gms.internal.firebase_ml.zzpl.call(Unknown Source:8)
2021-11-18 16:20:24.349 3452-3452/com.saralapp W/System.err: at com.google.android.gms.internal.firebase_ml.zzpf.zza(com.google.firebase:firebase-ml-common@@22.0.1:32)
2021-11-18 16:20:24.349 3452-3452/com.saralapp W/System.err: ... 6 more
2021-11-18 16:20:24.349 3452-3452/com.saralapp E/SrlSDK::HWClassify: Internal error has occurred when executing Firebase ML tasks
Layout threshold is to be configured for all the existing layouts.
Improve Handwritten Digits, OMR detection accuracy:
How to make BASE_URL configurable or updatable in the APK.
Think about the below options at a minimum and come up with solution:
Periodic Background data push from Saral App to backend.
Frequency and criteria of background job:
New Layout for Attendance/Mid-Day Meal to be designed and configured in saral app
Exam questions,LO to be listed as popup page on Scan screen
Exam Structure:
"questions": [
{
"questionId": "1",
"indicatorTitle": "L0-1",
"questionMarks": "1"
},
{
"questionId": "2",
"indicatorTitle": "L0-2",
"questionMarks": "1"
},
{
"questionId": "3",
"indicatorTitle": "L0-3",
"questionMarks": "1"
},
{
"questionId": "4",
"indicatorTitle": "L0-4",
"questionMarks": "1"
},
{
"questionId": "5",
"indicatorTitle": "L0-5",
"questionMarks": "1"
},
{
"questionId": "6",
"indicatorTitle": "L0-6",
"questionMarks": "1"
},
{
"questionId": "7",
"indicatorTitle": "L0-7",
"questionMarks": "1"
},
{
"questionId": "8",
"indicatorTitle": "L0-8",
"questionMarks": "1"
},
{
"questionId": "9",
"indicatorTitle": "L0-9",
"questionMarks": "1"
},
{
"questionId": "10",
"indicatorTitle": "L0-10",
"questionMarks": "1"
},
{
"questionId": "11",
"indicatorTitle": "L0-11",
"questionMarks": "1"
},
{
"questionId": "12",
"indicatorTitle": "L0-12",
"questionMarks": "1"
},
{
"questionId": "13",
"indicatorTitle": "L0-13",
"questionMarks": "1"
},
{
"questionId": "14",
"indicatorTitle": "L0-14",
"questionMarks": "1"
},
{
"questionId": "15",
"indicatorTitle": "L0-15",
"questionMarks": "1"
},
{
"questionId": "16",
"indicatorTitle": "L0-16",
"questionMarks": "1"
},
{
"questionId": "17",
"indicatorTitle": "L0-17",
"questionMarks": "1"
},
{
"questionId": "18",
"indicatorTitle": "L0-18",
"questionMarks": "1"
},
{
"questionId": "19",
"indicatorTitle": "L0-19",
"questionMarks": "1"
},
{
"questionId": "20",
"indicatorTitle": "L0-20",
"questionMarks": "1"
},
{
"questionId": "21",
"indicatorTitle": "L0-21",
"questionMarks": "1"
},
{
"questionId": "22",
"indicatorTitle": "L0-22",
"questionMarks": "1"
},
{
"questionId": "23",
"indicatorTitle": "L0-23",
"questionMarks": "1"
},
{
"questionId": "24",
"indicatorTitle": "L0-24",
"questionMarks": "1"
},
{
"questionId": "25",
"indicatorTitle": "L0-25",
"questionMarks": "1"
},
{
"questionId": "26",
"indicatorTitle": "L0-26",
"questionMarks": "1"
},
{
"questionId": "27",
"indicatorTitle": "L0-27",
"questionMarks": "1"
},
{
"questionId": "28",
"indicatorTitle": "L0-28",
"questionMarks": "1"
},
{
"questionId": "29",
"indicatorTitle": "L0-29",
"questionMarks": "1"
},
{
"questionId": "30",
"indicatorTitle": "L0-30",
"questionMarks": "1"
}
]
VirtualizedList: You have a large list that is slow to update - make sure your renderItem function renders components that follow React performance best practices like PureComponent, shouldComponentUpdate, etc. {"contentLength": 3041, "dt": 101529, "prevDt": 189040}
once we scan one class of a school and then we move to other class of same school it is showing wrong student list .
Scan Status button on final scan screen to show scan status in local storage
Auto-Sync frequency to be configurable from login API.
This issue is coming when we login to two different school .
Steps to create this issue:-
Clean reference data by changing school names as school 1, school 2 instead of specific names.
Maintenance APIs Resource refactoring as per REST standards
Sync Saral SDK changes to SaralSDK repository, test
This issue is
body passed for saved scan API:- {
"classId": "5",
"subject": "Hindi",
"fromDate": "29/09/2021",
"schoolId": "up001",
"page": 0,
"downloadRes": false
}
expected body for saved scan API:-
{
"classId": "5",
"section": "D",
"subject": "Hindi",
"fromDate": "29/09/2021",
"schoolId": "up001",
"page": 0,
"downloadRes": false
}
Support Android 7,8,9 devices and investigate problems with prediction. Use Android 7,8,9 emulators and test and identify issues/warnings during prediction.
After login branding takes some time to load. So initially previous login branding was showing, Please fix that.
after login deprecated warning showing.
Saral App to collect failure logs and should be able to email to support team.
Refer mock design for Logout, Support to be shown as header:
https://xd.adobe.com/view/93744148-6c31-4e9b-aa33-f3cde3c19723-c627/
https://xd.adobe.com/view/66e79e70-7470-4ab0-a2b1-3db978f645fd-33b4/screen/1d2d1e50-55ea-4ca7-a9e5-d03556defb08/
https://drive.google.com/drive/folders/1VmcWyeZjwHvj7jUCSBstbO5BtD--Y-70
Below is the link of issue :-
https://drive.google.com/drive/folders/1w4K6L6I5IrdFm7JZ2o3_Z24ktknqJuvw
AutoSync enable/disable option in login API:
In the Scan process, table detection of layout to be made more accurate. Currently app allows to draw a polygon with other dots or circles and scan predictions going wrong
-> currently token used here is basicAuth .
When I am scanning multiple student id it is showing same studentIdTrainingData for all the students which I have scan .
Single student id is working as expected it is showing same studentIdTrainingData for the student .
Multi-Tenant Branding: Enhance all the screens to externalize the labels
Android packaging (AAB) for uploading to playstore for Saral v1.0 and document the steps.
Feature to enable dynamic validation configurable from the backend. This will make the Android app more configurable.
Validations can be injected from below two levels into layout json as part of GET /roi/{examId}
Levels:
School
Exam
Swagger documentation shows /login as api path instead of /schools/login. Please check other API paths also once and correct as needed.
Exam Type to be added to Scan screen.
Production Readiness:
Setup internal dev server for testing backend and frontend integration
Setup secure https endpoint for backend and integrate with frontend
Data setup for various states: Get inputs from manmeet and validate by ingesting near-real data.
Password should be encrypted.
Playstore upload process: https://github.com/project-anuvaad/Project-Saral/wiki/Saral-App-publishing-to-Playstore
apkURL in config.js
App image
Add com.google.firebase:firebase-crashlytics-gradle:2.7.1
enableProguardInReleaseBuilds
https://github.com/project-anuvaad/saral-data/blob/master/android/build.gradle#L18
Time taken to scan up 8 students omr layout is more than expected. Need to check if any scope to improve performence.
For Multi-choice OMR Make marks validation dymanic based on a number of choices available. It its not multi-choice , allow only 0 or 1.
Clean up unused elements in the API like hmName, hmContact etc. but keep backward compatibility so that APK doesn't fail with old API interface implementations
Saral v1.0 feature to capture actual prediction value and confidence values
json marks data in local storage needs sharable for troubleshooting/training AI/ML models.
On Scan Status screen , a share icon to be displayed on top so that json marks content can be shared with support team.
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.