Code Monkey home page Code Monkey logo

ez-net-app's Introduction

EZNet App Build Status Codacy Badge Open Source Helpers

EZNet

Overview

EZ Net is an application developed for rural internet users which are not tech savy and shows interest in the internet and the resources it has.

It contains simple images to assist the user to open a webpage by clicking through app pages. This app is supposed to help the user familiarize with the web, and it would serve its purpose for users who are also new to the smartphone.

Idea

We would have a main page with several icons of title type e.g. News Papers, TV/Radio, Recipies, Religious material etc.

When the user clicks one category, webpages related to that category open up. There should be a few notably easy ones to click, and then maybe a "more..." button which shows more links. The idea is to have all as icons with their usual logos.

When the user clicks the logo, the link should open up in the default browser. We need not complicate this app with browser capabilities.

Design examples

You may use the following as a guideline to build

Where did this start?

This project is done to assist a sustainability project done by Dialog Axiata to help out bridge the gender gap in internet users in Sri Lanka. The need for this app arose when sustainability initiatives saw that most users like to browse the net, but are reluctant or is uneasy to type using the on screen soft keyboard of the mobile phone.

Therefore we decided we would pitch in and help users to start their internet experience and help them get familiarized with webpages in their first stages of accessing the internet.

Why is Codelanka and GDG doing this? Isn't this some company's problem?

The reasons this project was taken up by codelanka are;

  • If a commercial organization got this project they will try to earn money out of this and display paid ad-type links in the app
  • Even if paid ad-type links are probable, it would be hard for someone to monetize this app, making it nonsensible for a for-profit venture
  • Making the app will help a lot of people

Codelanka's core is to make software which help people but doesn't make any sense when it comes to monetization.

What can I do?

Fork, take up an issue, and then work on it. Then create pull requests. The usual deal. We want everyone who are interested to come and pitch in to bring our rural communities to the internet and the possibilities it offer.

Uh, wait, this is in React Native! I don't know React Native. (Can't we just use Java and Swift?)

Fantastic. You're exactly whom we're looking for! Me, the README writer even don't know the language. Isn't it great? You now have a real world problem to solve while learning something new.! You'll be able to learn React Native AND help a lot of people. Wouldn't that be fun?

How to start

This is a React Native app, thus you have to have tools neede for React and React native like NodeJS, NPM, ( Yarn ), etc. Android tools if you are building on Android. ( And iOS tools if you are building on iOS. )

Issue a yarn or npm install to get all the dependencies. Run with yarn start or npm start. You should have an Android virtual Device running.

Look at App.js as a starting point. ;)

Licensing

This application is licensed under the MIT license

Lets work together and make this possible.

ez-net-app's People

Contributors

agentmilindu avatar chathuralakmal avatar codetriage-readme-bot avatar iammosespaulr avatar jonatjano avatar keshan avatar nushydude avatar pamuditha avatar tdevinda avatar

Stargazers

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

Watchers

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

ez-net-app's Issues

Add these new categories until firebase is setup.

Received these categories from Damitha. Need to add these to the links.

පත්තරේ විස්තරේ
ලංකාදීප
දිනමිණ
රිවිර
තරුණි(Tharunie.lk)
නවලිය

කෑම වට්ටෝරු
https://www.youtube.com/channel/UCVz1bXiY1pz6Fz_Osm0YYBA

මැහුම් ගෙතුම්
සාරී හැට්ට
(https://www.youtube.com/results?search_query=saree+blouse+blocks)
ගවුම් මහන්න
https://www.youtube.com/results?search_query=how+to+sew+a+dress

බණ දහම් හා අනෙකුත් ආගමික විස්තර
https://www.youtube.com/results?search_query=bana

ළමා අධ්‍යාපන අත්වැල
5 වසර
https://www.youtube.com/watch?v=DUWKu6WSoA8&list=PL94ZZLMZi8sXa8CeaJlDZQ6JY2qc7CKiS
e-තක්ෂලාව
http://www.e-thaksalawa.moe.gov.lk/

අඩු මිලට බඩු මිලදී ගන්න
http://www.wow.lk/
http://takas.lk/
https://www.daraz.lk/

විඩියෝ කෝල් ගැනීම
skype
https://play.google.com/store/apps/details?id=com.skype.raider
Imo
https://play.google.com/store/apps/details?id=com.imo.android.imoim&hl=en

ගීත අසන්න
https://www.youtube.com/results?search_query=sinhala+songs

Updating the code base

  • React propTypes is obsolete in the latest versions of react native.
    Therefore, i'd suggest to remove all such instantiations.
  • Bringing all the images and styles in a single place (named assests)
  • Removing Responsive Images as they have some issues running, instead add 'Images' from the react native library

Tapping on a category twice would open views twice

How to reproduce

Simply build the app and run it. Then double (or triple or anything higher than once) tap a category (there is only one as of now) instead of a single tap. It would load the DetailScreen twice.

Comments

This could be a problem with React-Navigation, or we probably haven't configured it properly.

Have to investigate.

Going for the initial user testing

Hi all,
Just downloaded the latest APK, thanks everyone for the great work till now.
To do a quick user testing, can I get few more of the category loaded? OR give us an interface to load them our self?
Based on the user test we can give some feedback on changes if needed.

Damitha

Titles are not visible

Component titles are not visible at all for users.
We need to display the title below / above the thumbnail

Fetch data from Firebase Db

We like to connect to the Firebase and fetch data for the app from Firebase DB.

Check the following URLs.

  1. https://project-7593821828655173684.firebaseio.com/Categories.json
  2. https://project-7593821828655173684.firebaseio.com/Sites.json
  3. https://project-7593821828655173684.firebaseio.com/Sites/Newspapers.json

Current database structure is like this

image

This file contains all the relevant details to the Firebase. The database is public readable.
https://github.com/CodeLanka/ez-net-app/blob/master/android/app/google-services.json

Image backgrounds appear black after a tap

How to reproduce

Build the app and run it in an AVD (I used a Nexus 5). When you tap on a category and go into its DetailsScreen and go back, the background of the image will show up as black. Same thing happens when you tap on a Link (an image on the DetailScreen) which opens the browser. When you come back, the image backgrounds will be black.

Comments

  • Could be a problem with AVDs. I haven't tried in a real device.
  • Could be a problem with styles.
  • Could be a problem with how React Native deals with PNGs with transparency,

Build Failed "CFBundleIdentifier", Does Not Exist

Getting this build failed error even i added the native-base and all the dependencies. any idea about it?

** BUILD FAILED **

The following build commands failed:
CpResource /Developer/ez-net-app/node_modules/native-base/Fonts/Andale\ Mono.ttf build/Build/Products/Debug-iphonesimulator/ReactNativeProject.app/Andale\ Mono.ttf
CpResource /Developer/ez-net-app/node_modules/native-base/Fonts/Arial\ Black.ttf build/Build/Products/Debug-iphonesimulator/ReactNativeProject.app/Arial\ Black.ttf
CpResource /Developer/ez-net-app/node_modules/native-base/Fonts/Arial.ttf build/Build/Products/Debug-iphonesimulator/ReactNativeProject.app/Arial.ttf
CpResource /Developer/ez-net-app/node_modules/native-base/Fonts/Comic\ Sans\ MS.ttf build/Build/Products/Debug-iphonesimulator/ReactNativeProject.app/Comic\ Sans\ MS.ttf
(4 failures)

Installing build/Build/Products/Debug-iphonesimulator/ReactNativeProject.app
An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=22):
Failed to install the requested application
The bundle identifier of the application could not be determined.
Ensure that the application's Info.plist contains a value for CFBundleIdentifier.
Print: Entry, ":CFBundleIdentifier", Does Not Exist]

Cannot get the app to run on the AVD

Cannot get the app to run on the AVD. How to solve this?

Steps followed

  • Fork to my github account
  • CD to my local root folder
    cd ~/Documents/Github
  • Clone the project using:
    git clone https://github.com/nushydude/ez-net-app.git
  • Go into the app and install the dependencies
    cd ez-net-app
    npm install
  • Open the project and run AVD
    Open Android Studio 2.3.3
    Open an existing Androind Studio project from initial screen
    Point to ~/Documents/GitHub/ez-net-app
    Android Studio says "Frameworkd detected. Androind framework is detected in the project. Configure."
    Click on Configure
    Click OK (There are already checked checkboxed called Android and Android -> 9 AndroidManifest.xml files)
    Start AVD (Nexus 5 API 23 running Android 6.0 x86_64)
  • After the AVD boots up, run npm start to start the app.
    Build seems to go fine as I get the following screen.
    Alt text

But nothing shows up on the AVD.

Environment

Windows 10 x64
Android Studio 2.3.3
Node.js 8.1.2

Thumbnails not showing up

I am not able to see the thumbnails in my app.
I am getting the thumbUri's as : file:///data/user/0/org.gdgsrilanka.codelanka.eznet/files/RNFetchBlobTmp_7dsn49d9uwkcalwizcfwlk.png etc etc

This is showing up instead:
1
whatsapp image 2018-02-19 at 18 35 16

Add Google Analytics

Integrate with Google Analytics and add events for,

  1. Opened app
  2. Clicked on a link
  3. Navigates to next page ( or triggered scroll loading if we are using infinite scroll )
  4. Closed app

Why are styles used in state?

I noticed that in the App.js and the DetailScreen.js, styles are being used as the component state.

Why are they in state???

Do the styles ever get changed on the fly? Even if they did, they should be props passed down from a root level component.

export default class DetailScreen extends Component {
    state = {                              <----------------------- defined here
        flexDirection: 'row',
        justifyContent: 'center',
        alignItems: 'center',
    }
    render() {
        
        const {flexDirection, alignItems, justifyContent} = this.state
        const layoutStyle = {flexDirection, justifyContent, alignItems}   <------- and it's being extracted here
        
        return (
          <Container>

              <Content>
                <View style={[styles.layout, layoutStyle]}>   <------------------- and used here

Images are not cached after fetching from Firebase.

What's the problem?

It takes some time for the app to fetch images from Firebase. But it's really annoying to wait for it when launching EzNet - ALWAYS. We should cache images to fetch them only one time or after updates.

How to fix it?

We can fix it by editing Api.js's getThumbnail method to store/cache thumbnails in device storage. I'll get on this in the next days

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.