Giter Site home page Giter Site logo

himama's Introduction

Run the App with Local Code

Prereqs for Both Platforms

  • Install yarn: Mac
  • Install yarn packages: yarn
  • Start the React Native packager as a webserver: yarn react-native start

iOS

android

  • Follow above "Prereqs for Both Platforms".
  • Install Android Studio and Oracle JDK.
  • On Android Studio's first run, configure it to install Android Virtual Device (AVD).
  • Identify the location of your Android SDK source (you might have chosen it in Android Studio's configuration). The lines below assume it's /Users/USERNAME/Library/Android/sdk so replace that below if necessary:
    • In the himama project, create a file android/local.properties with this line:
    • sdk.dir = /Users/USERNAME/Library/Android/sdk
  • Build app and start emulator: yarn run android

Tests

Components are tested with Jest and react-native-testing-library. To run the tests, use the command yarn test.

Authentication

Authentication is not yet set up in the app and any random string in the username and password fields allow you in to the app.

Please describe your process for approaching the code challenge.

The first thing I did was understand the problem statement fully, which daily rostering of kids in each classroom. I proceeded to look through the sample input to be sure what the data form was and this informed the flow of the app.

What kind of planning did you do? Did your plans change as you began coding?

I started by choosing if I would be using a front-end framework(react) or native mobile development technology(react native), after this, I planned the test frameworks to use. Then I proceeded to data storage and user authentication. Some plans changed, an example was that I started out using react-native-async-storage because of time constraint and eventually migrated the work done to firebase real-time storage when time.

Is there anything you’d like to add or mention in regards to the app design and navigation you chose?

For navigation, I chose React Navigation since it provides a straightforward navigation solution, with common stack navigation patterns on both Android and iOS. For now, the allClassroomsAccessible key is toggled manually in the database, and the state of the key affects what teachers can do on the app

If you were given another day to work on this, how would you spend it? What if you were given a month?

If I were given a day, I would work on cleaning up the app as is to work seamlessly on both android and iOS. It currently works on both platforms, but the header and the cards look janky at the moment. Also, I would add more tests before the codebase gets bigger to improve the code quality and encourage contributions from other developers.

What if you were given a month?

Setup CI flow for testing and ios + android builds. Add more features to the app such as

  • user authentication
  • admin dashboard to set teachers access to classes
  • adding timestamp to check-in/out time 
  • student journey(log of classes a child has attended as they move between classes)
  • child dashboard which is visible to both parent and teacher to showcase child's activities and teacher's observation. 

himama's People

Contributors

makindemayowa avatar

Watchers

James Cloos avatar  avatar

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.