Giter Site home page Giter Site logo

sunbird-saral / project-saral Goto Github PK

View Code? Open in Web Editor NEW
8.0 8.0 25.0 240.65 MB

License: MIT License

Groovy 0.05% Jupyter Notebook 56.04% HTML 1.96% Dockerfile 0.01% JavaScript 18.46% Shell 0.15% CSS 0.10% Pug 0.04% Starlark 0.03% Java 22.53% AIDL 0.01% Ruby 0.01% Objective-C 0.06% Python 0.31% Jinja 0.09% HCL 0.13%

project-saral's People

Contributors

apurvabisht97 avatar arman-tdev avatar dileep-gadiraju avatar harish-challa avatar kumardeepak avatar navin9584 avatar navinnahar11 avatar rsankagi avatar sanjay-v46 avatar santhoshkumarcs3624 avatar sivaprakash123 avatar venky3692 avatar vky25 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

project-saral's Issues

Saral App to collect failure logs and should be able to email to support team

Saral App to collect failure logs and should be able to email to support team.

  • All the handled failure logs have to be captured and stored internally. When logs cross a certain limit(to be decided), they can be cleared.
  • When the user clicks the support icon shown on the top section of the app screens, it should open default email with logs in the body.

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

wrong student list is showing on save status .

This issue is coming when we login to two different school .
Steps to create this issue:-

  1. when we login to odisha school and scan the sheet and once you hit save all scan and your scan count comes logout from that page .
  2. login to other school(where data is already saved in database) and go to scan history card page and go to save status button .
    you can view this issue by below link:-
    https://drive.google.com/drive/folders/1w4K6L6I5IrdFm7JZ2o3_Z24ktknqJuvw

warning issue

  1. Can't perform a React state update .
  2. componentWillMount has been renamed .

wrong student list

once we scan one class of a school and then we move to other class of same school it is showing wrong student list .

Periodic Background data push from Saral App to backend

Periodic Background data push from Saral App to backend.

  • Periodic background job within Saral App should poll local storage
  • If data is present in local storage, check the connectivity and push the data.
  • if there is a failure pushing data in the background, proper logs should be written for troubleshooting later.
  • We should make sure if the background data push fails, local storage data is not lost.
  • We should make sure there is no conflict between manual Save All action and background job. Maybe by using locking.
  • Top section of the app should show an upload icon across the pages when backend data push is in progress.

Frequency and criteria of background job:

  1. Every 30 mins job has to check the below criteria before pushing data.
  2. Minimum of 10 records should be in local storage.

Dynamic Validations from backend:

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

trained_resnet_model_v2_10.tflite AI/ML Model Updates for Saral v1.0

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

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

How to make BASE_URL configurable or updatable in the APK

How to make BASE_URL configurable or updatable in the APK.
Think about the below options at a minimum and come up with solution:

  • Commands to update BASE_URL in APK after APK is generated
  • During the installation of APK, should ask for URL as input.

Auto-Sync frequency to be configurable from login api

Auto-Sync frequency to be configurable from login API.

  • autoSync { "frequency": 900000 } // in milli seconds, optional field
  • If autoSync.frequency is not found in login API , should fall back on default frequency 10 mins
  • Make sure backwards compatibility is working as expected.

AutoSync enable/disable option in login API

AutoSync enable/disable option in login API:

  • Login API add optional autoSync boolean attribute. Make sure Saral App works even without this flag from the backend. By default, it should be set to false.
  • Across Saral make sure AutoSync feature including auto sync validations are enabled/disabled using this flag.

Exam questions,LO to be listed as popup page on Scan screen

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 issue

Swagger documentation shows /login as api path instead of /schools/login. Please check other API paths also once and correct as needed.

Clean reference data

Clean reference data by changing school names as school 1, school 2 instead of specific names.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.