sunbird-saral / project-saral Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
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 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
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
}
-> when i am scanning 50 students for save marks and using skip functionality then it is replacing student info with null .
This issue is coming when we login to two different school .
Steps to create this issue:-
After login branding takes some time to load. So initially previous login branding was showing, Please fix that.
after login deprecated warning showing.
Exam Type to be added to Scan screen.
Maintenance APIs Resource refactoring as per REST standards
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 .
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.
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.
Periodic Background data push from Saral App to backend.
Frequency and criteria of background job:
Multipage support for layouts where questions will be split across multiple pages - To be reviewed
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
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.
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
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
New Layout for Attendance/Mid-Day Meal to be designed and configured in saral app
How to make BASE_URL configurable or updatable in the APK.
Think about the below options at a minimum and come up with solution:
Auto-Sync frequency to be configurable from login API.
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.
Below is the link of issue :-
https://drive.google.com/drive/folders/1w4K6L6I5IrdFm7JZ2o3_Z24ktknqJuvw
AutoSync enable/disable option in login API:
Saral v1.0 feature to capture actual prediction value and confidence values
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
Scan Status button on final scan screen to show scan status in local storage
Layout threshold is to be configured for all the existing layouts.
-> currently token used here is basicAuth .
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"
}
]
Swagger documentation shows /login as api path instead of /schools/login. Please check other API paths also once and correct as needed.
Improve Handwritten Digits, OMR detection accuracy:
Time taken to scan up 8 students omr layout is more than expected. Need to check if any scope to improve performence.
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 .
Sync Saral SDK changes to SaralSDK repository, test
Clean reference data by changing school names as school 1, school 2 instead of specific names.
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.