Git Product home page Git Product logo

take-home's People

Contributors

aberdean avatar fanisgk avatar kylemathias avatar leomaxi avatar timecomplexity avatar waffle-iron avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

take-home's Issues

Display shadow/ghost "" - Resources / material list offline

Engineer a way to have the tall list of resources offline on couchbase lite WITHOUT resource FILES / ATTACHMENTS on the tablet. Users should be able to add these ghost/shadow resource to thier library offline and DOWNLOAD it when connected to the server.

HTML resources very slow on take-home

Opening the HTML resource triggers a download from HTML files/folders from couchBase Lite into a local folder on the tablet, before opening it with Firefox. Downloading of the files and folders takes time and therefore renders the action "Slow".

App crash after pulling the latest code from "open-learning-exchange/take-home/master" branch

I can’t get “take-home” run on my android device (HTC Butterfly, Android version: 4.4.2, API: 19) after pulling the latest code from open-learning-exchange/take-home/master branch.

Error Log:

screen shot 2017-07-24 at 3 15 05 pm 2

I tried to figure out the problem so I check back to previous commits one by one. It worked when I checkout to the commit on May 18 “Merge pull request #56 from open-learning-exchange/maxi_courses”, which is the same commit I was in before pulling the latest code

Does anyone has the same issue?

Visual Bug: Home Screen

App: take-home_24-07-2017
Device: Galaxy S7:
OS version: 7.0

These bugs are visual only. I am just reporting anything i find. let me know if i should be more focused on a certain area.
screenshot_20170726-123816

Some text formatting issues on my
In horizontial mode, some text is cut off. Probably related to padding/layering spacing:
screenshot_20170726-124230

New UI: Vertical orientation login screen

Device: Android Emulator-Nexus_5X_API_22:5554

In vertical device orientation, the log in dose not display interactive login boxes or buttons. In other words, Username:, Password:, settings , ect. dose not show up.

Along with that, the background image is not scaling correctly. the image is squished. Could be improper aspect ratio scaling.

Image showing what i am talking about:
image

6/22/17 Update

Last Update #61

I believe i have exhausted all possible ways of getting our RB Pi treehoues.img file written to a SD card with an android device. I have tried using console commands through the android terminal, but this cause errors with the NAND memory limits on the device. I have Tried several img writing apps and all of them seem to fail the same way. I believe all the apps are accessing the Android's terminal and failing in the same way that i am. My next step is to try Noobs image and see if i can get that to write correctly. If so, then the RBpi team will have to decide if they want to try to work with the base Noobs img, or any other image that might actually work.

@leonardmensah has solved the Time stamping issue the take-home app was having. The application is now using the devices time instead of trying to retrieve the time from MongoDB. @leonardmensah has started to implement the new UI. If you could @leonardmensah share some pictures, i think people would like to preview how the app will look.

@Yurockkk Talked about his Bluetooth connection to the RBpi device with an android device here. He is able to connect and send commands. The only pre-condition that is needed is for the RBpi to be actively looking for Bluetooth connections. We believe there could be a script ran on boot for the RBpi to actively make it self available for connection via Bluetooth that could alleviate this constraint.

@zeivhann Has started to look into Network Discovery for our android app. Esential it will scan for any open wifi network devices (or network devices) and return a list of devices in the area. We can then use this to identify the RBpi we need to connect to, thus solving the IP configuration issue we were running into when trying to connect through a local network.

Please feel free to add anything that i missed. Have a good weekend.

Next Week Update #64

SSH to RPi through USB Tethering

It looks like @Yurockkk has figured out a way to ssh via Bluetooth and laid it out in this document. Please read through this if you have not already.

I am working with a Raspberry Pi B+ model, and therefore do not have built-in bluetooth (as our end-users might also not have equipped on their machines), so I've been researching methods to connect through USB tethering.
Unfortunately, I could only get this to work when the RPi was connected to the actual wifi rather than the USB tethering. But I believe that this is a step in the right direction, by assigning a static name that adapts to dynamic IP. I believe that this has something to do with localization. The range for the name seems to only work on the RPi itself when it is USB tethered. I'm sure there is a way around this.

Set Up RaspberryPi for Headless Operation (USB Tethering WIP)

Following a suggestion on this Stack Overflow:

1. Turn on RaspberryPi and tether it to phone to use phone's internet connection seamlessly.

2. Following this guide on your RaspberryPi:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install avahi-daemon
sudo insserv avahi-daemon

3. Then we need to create a service and restart it. Create the service with:

sudo nano /etc/avahi/services/multiple.service

4. Place this text into the file you're creating:

<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
        <name replace-wildcards="yes">%h</name>
        <service>
                <type>_device-info._tcp</type>
                <port>0</port>
                <txt-record>model=local</txt-record>
        </service>
        <service>
                <type>_ssh._tcp</type>
                <port>22</port>
        </service>
</service-group>

5. Restart the service with

sudo /etc/init.d/avahi-daemon restart

Testing on a Windows machine

If you're testing on a windows machine, you might have to install Bonjour to test raspberrypi.local. If you're testing on a Unix machine, you can skip these steps.

Then we need to add an exception to the firewall to open the 5353 UDP port. You can do this by looking at this guide and selecting UDP port and specifying 5353.

After these steps, we must grant internet access to mDNSresponder.exe so that we can use multicast over the local subnet. You can do this a similar way by creating a rule for both inbound and outbound. Simply select Program this time, and locate mDNSResponder.exe which I found in C:\Program Files (x86)\Bonjour.


Test Connection

Try out ping raspberrypi.local and it should return successful packets. If it does not, it's likely because of the issue of it being tethered via USB.
If this is the case, try turning off the USB tethering and connecting the RasberryPi to the wifi and attemping to ping and connect again. It should work this time around.


Additional Stuff

I feel like I am getting very close, I would appreciate anyone who wants to test this out themselves. Especially anyone with a very solid understanding of networks. I am afraid that I am a bit lacking in that regard, as far as complex connections go. As I stated before, I got everything to work perfectly when the RPi was connected to the wifi. I could simply use ssh [email protected] on my Linux machines and in PuTTY on windows.

Is there a way for us to somehow "route" the SSH through the phone's IP first and then use raspberrypi.local from there?

I thought that this link had an interesting concept. The LCD screen is not practical for our uses, nor is the audio component. But maybe we can use it to draw inspiration.
http://www.instructables.com/id/How-a-headless-Raspberry-Pi-can-tell-you-its-IP-ad/

7/13/2017 Update

Last Week: #67

In todays meeting, Me, @leonardmensah, @zeivhann , @Yurockkk , @Chris-Boe and @kanishk1010 all met and talked about what we were working on.

@Yurockkk , @zeivhann and me all started working on getting our different android utilities working with in an actual application. The process is starting to reveal just how long this will take to complete.

A new repository was made today to partially organize all of our different coding projects that will eventually be merged together to create the OLE Utility app. You can find them here. Please use this if you need to refrence current projects or if you need to update the team on a project you are working on.

@leonardmensah Has made significant changes to the Take-Home applications UI. We would like everyone to test it. you can find it here (make sure you are on the maxi_ui branh). Mess around with it. If you find any thing that could be changed or improved to the UI, sugesst it to the original issue..

@Chris-Boe and @navneetkarnam both wanted to start contributing to the team in some way. I have suggested that they start reaseaching and implementing zipped html resources for Take-Home. It was suggested that that this process can be done in 2 ways:

  1. Have them zipped on demand. User request an HTML app, MongoDB runs a script and zips the app, then sends it over.
  2. Have the HTML apps Pre-zipped. When a user adds an HTML app to the MongoDB, a script runs and zips the app. User request the HTML app, MongoDB sends over the zipped app.

Proposal 1 has the advantage of developers not needing to change the way they add HTML apps to the DB, along with saving space. The disadvantages includes more CPU overhead in the field. I don't know if the size of the apps would cause a problem in having them zipped on demand, but it is something to consider.

Proposal 2 has the advantage of having all the processing done at time of adding the app, thus relieving the computing time in the field. This cause an inflation of space server side. I don't know if that is a problem, but this way i would think would be optimal for people in the field.

See you next week.

Next week: #72

6/1/17 Update

I will start making a weekly issue updating people on what went on in the week and what we went over during our weekly Take Home meeting Thursdays.

  1. We are still looking for a solution for imaging a Raspberry Pi Image from an android phone. #57 So far we have tried to use an imaging app, but no one has gotten it to work. Pi SD Card Imager
  2. The Raspberry Pi team is looking into modifying our currently used Raspberry Pi Image so it will start with some pre set scripts. This image is what we will be mounting to sd cards with our solution we find. These scripts would then be accessed and run by our second function through a Bluetooth connection to our Android device.
  3. This is a google doc of some links we found to possible solutions to these issues https://docs.google.com/document/d/1fnxF_mV_JjS52h6lKUJg-MQ0tgeGDZV1XcSc3BpLsIc/edit

So to sum it up, we are still looking into mounting our Image with an Android Device, along with finding out a way to send commands through Bluetooth to the Raspberry Pi.

Other interns, please feel free to post additional topics i might have missed, and post a comment here that you have read this.

Next weeks meeting: #59

Fix PDF reader always installing

When you download a PDF, it always ask to install Acrobat Reader even if its installed already. Need to add a checker to the button to avoid this from popping up.

Resources are always downloading

If you have downloaded a resource, the next time you click to view it, the app will download the resource again. Need to add checker.

7/6/2017 Update

Last Week #64
Me @Yurockkk and @zeivhann met in hangouts today to talk about our current progress.

@Yurockkk Is refining his guide along with working on configuring the raspberry pi wifi through terminal commands.

@zeivhann is continuing his work on usb tethering, primarily looking for a way to retrieve the IP address. If he is able to automatically obtain the address we can then use that to establish the connection between the Pi and Android device.

I was successful in writing NOOBs to a SD card. I think i have found that if a SD card is un-formated and then inserted into a Android device, the default format is FAT32, the needed format for Raspberry Pi OS. I have also started work on making an Android application to help verify these settings and then writing over the NOOBs OS.

I have encouraged everyone to try and get started in implementing some of there findings into there own application. If we are each able to create our functions into working application form, we can then combine all of our efforts into one Utility application.
Next Week #68

Error Message Box: On log in

App: take-home_24-07-2017
Device: Samsung Galaxy s7
OS version: 7.0
Setup: Local IP "http:192.168.1.212:5985"

Error Box:
screenshot_20170726-131254

Steps i did to produce this box:

  1. Launch app originally
  2. Setup: ->put in local server ip and port "http:192.168.1.212:5985"
  3. Log into my account
  4. On home screen, Click "Update" top right. Then get prompted with "Please log in and out for it to update"
  5. Completely close out app
  6. Relaunch app and log in

On the home screen after login that box pops up. I am able to close the message box and use the app like normal.

6/15/17 Update

Last meeting: #59
me and @leonardmensah met at 10 am to 11 am PST

We are still researching ways to correctly connect via blue tooth to send commands over to the raspberry pi. @Yurockkk has found some way to connect and send over commands with Bluetooth and will need to demo for us later.

@leonardmensah is having an issue with time stamping data entries into couchdb and is looking into possible solutions. If anyone of you can help him with this, meet with him in talk.ole.org some time this coming week.

I was looking into mounting an image via an Android device and have found some source code that looks promising. https://github.com/kylemathias/android-sdcard-writer . this code takes and img and writes it to the SD card. It works with "Berryboot.img" but i was looking into getting it working via our treehouse.img. the best part about this solution, if we get it working, we can use the source code to make the foundation of our own custom app.

I liked how we used this weekly update last week to post some progress on what we have done during the week. Please feel free to do that again.

Next Meeting: #62

6/29/17 Update

Last Update #62

Me @Yurockkk and @kanishk1010 all met today in hangouts for about an hour talking about what we have been working on this pass week.

@Yurockkk has been working on his Bluetooth connection guide between the raspberry pi and android device. He has already successfully connected and controlled the raspberry pi through a terminal via Bluetooth and is now writing and polishing a guide for it.

I was working on getting NOOBS mounted to an SD card via android and I have successfully mounted NOOBS. I have found a couple of issues when doing this that i thought i could share.

Raspberry Pi's can only read FAT32 formatted SD cards when using the SD card for the for the OS on the Raspberry Pi. In windows, when you format a SD cards that are larger than 64 gigs (i think 32 gigs or bigger), it will only format it in the form of NAFS. I thought this was the issue i was having when i was trying to get treehouse6.img mounted to the SD card, but i have tried it on a correctly formatted SD card and it still dose not work.

Problem with putting a SD card in the default slot of the Android device, the android OS will write basic files to the SD card witch i think is causing problems. My next step is to try and get NOOBS on the SD card through a micro SD card reader to possible avoid the unnecessary folders and files automatically put on the SD card.

If you guys can, please post what you have been working on. I would like to hear what progress you have been making.
Thanks
Next Week #67

Force git to ignore dummy mac adress lines

On the files FullscreenActivity.java and FullscreenLogin.java we have been commenting out this line and putting in a dummy mac address:

String m_WLANMAC = wm.getConnectionInfo().getMacAddress();

This, however, is not what we want to merge with the main branch because we want the app to work straight out of the box with an android device.
To make it easier for us while we edit and test this thing, I think we ought to look into maybe setting up a git ignore rule to ignore these edited lines if at all possible.

mymac

I discovered this stack overflow when I was researching the problem. Might be something to consider, unless it muddles things up a bit.

Auto update Apk on tablet options

edited: by Kyle Mathias 4-28-17
We are trying to look into different ways to Automatically update the application. Right now, all we have is sending a new APK by email, then having someone install it (usually a tech genius). There couple of different ideas we had to get updates to the user. They are in order of preference.

  • Update through the BeLLApp
  • How: When the Android device sync with the nation, it sees that it is out of date, and goes and pulls the update from a Resource module in BeLLApp/CouchDB
  • Basic Flow: Device connects to raspberry pi->user logs in->gets notified of update->clicks update->App pulls update from BeLLApp Resurce/CouchDB and it installs automatically.
  • Potential Problem The app is 600mb. Pull a 600mb module from the nation will hang/download for a long time. Possible solution would be to only pull different file changes OR have it get downloaded out side of the App.
  • Update through google play.
  • How: User connects to the internet
  • Basic Flow: User Connects to an internet source->Downloads update from app store->Installs Automatically.
  • Potential Problem: Most users do not have access to the internet.

We would like everyone to look into possible ways to solve this problem through both options. We are going to meet in a week from today to discus the solutions we each found and how to go about starting implementation. We will meet Friday, the 5th of May at 10am PST/ 12pm CST / 1pm EST.

Apply New UI

Modify the current UI to reflect the agreed / approved UI.

0
2a
3b
2b

8/17/2017 Update

Last Update #72

This past week i was able to get a SD formatted and working with NOOBs using only an Android device. I am in the process of making a guide here. I am still in the process of completing this guide with the intention of making sure its as easy as possible for "tech field" implementer avoid the problems i escorted during this process.

@Yurockkk Is working on his Bluetooth-RPi-Python app along with teaching himself angular. His intention is to contribute to the BeLL-angular-reboot project.

@dogi would like us to test out his latest RBPi image.

@dogi has suggested if we are going to test our SSH terminal apps, some good commands to test with are listed here. These commands configure the wifi witch is the main end goal of our applications.

See you next week.

New Andriod Application Project: RPUtility.apk

Android devices are more readily available in the field then laptops. For this reason there is a strong pull to create an Android app that can help configure and deploy the BeLL Raspberry Pi app completely from an Android Device.

The current Process is as follows on a laptop:

  1. Download Raspberry Pi Image.
  2. Configure the Image with DD Linux Command (Data Duplicator).
  3. Put Image on SD Card.
  4. Put SD Card in Raspberry Pi.
  5. Launch the image on the Raspberry Pi
  6. Configure the wireless network on the Raspberry Pi.

What we want to create is an Application for Android that does these steps. If someone wanted to get BeLLApps working on a a Raspberry Pi using an Android Device and our application, they would:

  1. Put the SD card in the Android Device
  2. Launch Our RPUtility app
  3. The Utility would configure the Raspberry Pi image by download the BeLL App image online then put it on the SD card (using the Linux DD commands).
  4. User would then put the SD card in the Raspberry Pi and power it on.
  5. The Application would then connect to the Raspberry pi through Bluetooth to configure the Raspberry pi's WiFi hotspot/network settings.

This is the basic idea @leonardmensah had conveyed to me, and we would like all of you to research and contribute your thoughts on Thursday the 25th @ 10am PST / 12pm CST / 1pm EST in http://talk.ole.org/ . This would be a great way for all of us to build something from the ground up. Looking forward to hearing your thoughts.

7/20/2017 Update

Last Update #68

This past week we all continued working on our Android utility projects. This next week we are going to primarily focus on testing @leonardmensah new UI along with cleaning up the code (@zeivhann has already cleaned it up).

There are a few things that need to be consider while we are testing out the UI code:

  1. It will be used on a 10 inch tablet (primarly)
  2. It will be locked in horizontial orintation.
  3. firmware will be 5.1 (soon to be 6.0)

@leonardmensah would also like someone to take on the responsibility of finding out how to reverse the typing orientation of the log in screen for a different language. The people that are going to be using the app, there language is written in Right-left orientation.

@kanishk1010 is going to start working on unzipping html resources. He is going to meet up with the BeLL-Apps team in happy hangouts on Monday to find out more information so he can proceed with the unzipping project.

Next Update #81

6/8/17 Update

Last Meeting: #58
Me and @zeivhann met today in hangouts and talked about our progress on our current project #57 , and what our next steps should be.

We currently have 2 different ways to connect to the RBpi and use SSH commands. One is using a network where both the android device and the RBpi are connected to the same network. The other way is using a USB cable between the RBpi and the Android device to establish a connection. Both ways are laid out in a guide i created this week found here: Android SSH RBPi setup

Once connected with SSH we can then send commands over to configure the wifi thus solving one of our goals for our project #57. There is an app that can make an SSH connection and then send over stored Script commands found here: SSH button we would like people to help test. Here are some steps to help guide you to help us test some of our proposed solutions.

  1. Mount and run the custom RBpi image found here
  2. Follow my guide Android SSH RBPi setup and try to connect to send some ssh commands over.

Our goal for this upcoming week is to find a way to mount the RBpi image with and Android device. There are some apps that say they can do it, but we haven't been able to get any of them to work yet. When you find a possible solution, post it here so other people can try it out.

Other interns, please feel free to post additional topics i might have missed, and post a comment here that you have read this.
Next week: #61

ZIP HTML app resources

@leonardmensah talked about a possible optimization solution for downloading the HTML resources from the nation to the take-home app. We are looking into possible .zip current and future HTML resources so that the take-home app can have smaller file size to deal with thus making it more efficient. Right now the Take Home app downloads raw files and then uses them on the device. Our hope for this issue is to download a zip and then unpack it on the device to save time and space.

OId Process:

  1. Raw HTML app gets added to the nation
  2. downloads uncompressed file

Proposed Process:

  1. .zip and raw HTML resources gets added to the nation
  2. Take Home app Downloads the .zip HTML app version
  3. Take Home Unpacks the zip.

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.