Giter Club home page Giter Club logo

digitalfabrik / lunes-app Goto Github PK

View Code? Open in Web Editor NEW
23.0 7.0 5.0 12.37 MB

The front end for the Lunes vocabulary trainer. Back end: https://github.com/digitalfabrik/lunes-cms

Home Page: https://lunes.app

License: Apache License 2.0

JavaScript 0.91% TypeScript 88.88% Starlark 0.09% Java 2.48% Objective-C 0.33% Ruby 2.35% Shell 0.69% Kotlin 2.06% Makefile 0.23% C++ 1.27% Objective-C++ 0.67% CMake 0.04%
react-native vocabulary-learning vocabulary-trainer

lunes-app's Introduction

Lunes App

Android and iOS React native Apps for Lunes

If your are interested in contributing write an e-mail to Steffi for development issues or to Daniel for non-technical stuff.

Contents

Getting Started

Prerequisites

Project setup

We suggest IntelliJ as IDE on Linux or Mac. If you are using a different IDE like Visual Studio Code, follow the steps here. If you want to develop on Windows, follow the steps here.

  • Import this project (VCS > Get from Version Control) and open it.
  • Run yarn in the terminal to install all dependencies.
  • Take a look at the available scripts.

Android

  • Install the Android SDK by using the Android Support plugin in IntelliJ.
  • Install the latest stable SDK Platform and Android SDK Tools in the SDK Manager (Settings > Appearance & Behaviour > System Settings > Android SDK)
  • [optional]: If you want to develop using an emulator, also install the Android Emulator in the Android SDK settings
  • run yarn start and yarn android

iOS

  • Own a Mac or another Apple device.
  • Install XCode
  • In /ios run bundle install and bundle exec pod install

Note: In order to work with the project in XCode, always open ios/Lunes.xcworkspace.

Additional Configuration

Conventions

Our conventions can be found here

Further Reading

Documentation on CI/CD and more can be found in /docs.

lunes-app's People

Contributors

ansamshtaiwi1 avatar ayashanaa avatar bahaatuffaha avatar bob606 avatar charludo avatar cmd190 avatar daveouds avatar deliverino[bot] avatar dependabot[bot] avatar f1sh1918 avatar hepperle00 avatar leandrah avatar lunars97 avatar maxammann avatar noergitkat avatar saraharar98 avatar sarahsporck avatar steffenkleinle avatar svenseeberg avatar timobrembeck avatar yasminnajar avatar zankerbe avatar ztefanie avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

lunes-app's Issues

LUN-7: Configure linting and prettier

Stefanie Metzger - 2.3.2021, 08:35:11

Linting rules from integreat project should be copied to lunes. Also configure prettier.

Refactor all files to match theses rules and the formatting.

Environment: -
Linked issues:

  • Blocks: LUN-19
  • Blocks: LUN-4

Summary Screen (Result Screens)

Summary Screen (Results Screen)

In the Results Screen the learner can view which words they learned correctly/incorrectly/almost correctly in separate screens.

DESIGN: Design - Correct, Design - Incorrect, Design - Almost Correct

User Story

  • As a learner, I want to see my feedback on my performance, so that I can learn from my mistakes
  • As a learner, I want learn about the correct words, so that I know what to aim for next
  • As a learner, I want to hear the words spoken, so that I can also practice with the correct pronunciation

Acceptance Criteria

  • Should have 3 separate Results Screens (Correct, Incorrect, Almost Correct)
  • Should show a list of words that includes (1) the article, (2) the word and (3) the sound
  • Should should a header that includes (1) a back button that goes to the Results Overview and (2) a finish button that goes to the Exercises Overview
  • Should show a description that includes (1) an icon, (2) screen description and (3) amount of words that were correct/incorrect/almost correct
  • Should show a tappable button that goes to the next Results screen (Correct > Almost Correct > Incorrect > Correct etc.)
  • In the Incorrect/Almost Correct screens there should be an additional button that allows the learner to repeat the words from that list

LUN-13: Refactor css of screens

Stefanie Metzger - 2.3.2021, 08:51:41

Css of all flies in src/routes should be beautified, so adjust the following:

  • replace StyleSheet.create(..) with Styled Components
  • remove all magic numbers everywhere
  • create generic classes if possible
  • use preffered flow-layout
  • layout should look the same as before

Environment: -
Linked issues:

  • Blocks: LUN-4

LUN-16: Adjust git

Stefanie Metzger - 30.3.2021, 12:16:19

  • add a rule, so branches can only be merged to main, if there are two approvals
  • add a codeowner file, so every code owner gets notifed, when a pull request is opend. (should be Steffen, Steffi, Raphael and Max for the beginning)

Environment: -
Linked issues:

LUN-6: Add Theming

Stefanie Metzger - 2.3.2021, 08:34:43

Theming should be managed with native-base package. Content of constants/colors.ts should be handelt with theming

Environment: -
Linked issues:

  • Blocks: LUN-139
  • Blocks: LUN-4

LUN-28: Deliver android app to PlayStore

Stefanie Metzger - 30.3.2021, 12:57:37

  • add playstore_upload lane
  • should be work for production  or testing/beta,
  • check if production release can be set so unpublished, if so create unpublished production release, if not create new ticket for production releases
  • add info to readme it neccessary

See: https://docs.fastlane.tools/getting-started/android/setup/#setting-up-supply 

and: https://thecodingmachine.github.io/react-native-boilerplate/docs/BetaBuild/

Environment: -
Linked issues:

  • Blocks: LUN-29
  • Relates: LUN-97

LUN-22: Setup fastlane

Stefanie Metzger - 30.3.2021, 12:30:36

Make the initial setup for fastlane (android and ios) with fastlane init

Environment: -
Linked issues:

  • Blocks: LUN-23
  • Blocks: LUN-24
  • Blocks: LUN-27

LUN-5: Add Typing for React-Navigation

Stefanie Metzger - 2.3.2021, 08:34:09

navigation and route type of should not have any type. e.g. in exercise.ts. Find these occurrences and replace them with appropriate types.

 

Environment: -
Linked issues:

  • Blocks: LUN-56
  • Blocks: LUN-4
  • Relates: LUN-55

LUN-21: Setup store presences

Stefanie Metzger - 30.3.2021, 12:29:30

Lunes App should be created in AppStore and PlayStore, but still be unpublished

Environment: -
Linked issues:

  • Blocks: LUN-23

LUN-8: Inital setup of circelCi

Stefanie Metzger - 2.3.2021, 08:36:05

Inital setup of circelCi should build the app, run tests and run linting

Environment: -
Linked issues:

  • Blocks: LUN-20

Exercise 1 Screen

Exercise 1 Screen

In this screen a user can listen to 10 different words that are related to the specified Profession Subcategory.

DESIGN: Zeplin

User Story

  • As a learner, I can go back to the Exercise Overview Screen
  • As a learner, I can go back to the Profession Overview Screen (through tapping the Home button)
  • As a learner, I can listen to individual words by tapping the sound button

Acceptance Criteria

  • In the header there's a EXERCISE OVERVIEW button that brings the user to the previous screen
  • In the header there's a HOME button that brings the user to the Profession Overview screen
  • There is a title and description of the screen
  • It shows a list of 10 words
  • Each word can be listened to by tapping the sound button
  • There can only be one sound playing at a time
  • When the sound is playing, the sound button should change from inactive to active

Profession Overview Screen

Professional Overview Screen

In this screen a user can choose which profession they would like to learn German words about.

DESIGN: Zeplin

User Story

  • As a learner, I can view different professions to learn German words about
  • As a learner, I can choose one of the professions to learn about

Acceptance Criteria

  • Header shows 4 icons and Lunes logo
  • There's a welcome message
  • It shows a list of buttons, indicating different professions

LUN-2: Merge index, imports and styles into one file

Stefanie Metzger - 2.3.2021, 08:31:39

The three separate files (index, imports, styles) in components, navigation and screens folder should be merged into one file with an appropriate name. The subdirectories (e.g. Header or ListItem) should be deleted.

Environment: -
Linked issues:

  • Blocks: LUN-3

LUN-24: Upload iOS app to browserstack

Stefanie Metzger - 30.3.2021, 12:33:30

  • add bowserstackuploadlive lane
  • iOS app can be tested on browserstack
  • job should be manually
  • should be added to deliver_browserstack

Environment: -
Linked issues:

  • Blocks: LUN-22

LUN-17: Setup CircleCI

Stefanie Metzger - 30.3.2021, 12:17:19

  • setup circleCI for lunes project in github

  • create one first workflow „commit“

  • create one first job „check“, which runs linting

  • ssh rerun should work

Environment: -
Linked issues:

  • Blocks: LUN-18
  • Blocks: LUN-19
  • Blocks: LUN-31

LUN-19: Add prettier to CI

Stefanie Metzger - 30.3.2021, 12:21:07

prettier check should be added to check_job

Environment: -
Linked issues:

  • Blocks: LUN-7
  • Blocks: LUN-17

LUN-11: Setup Sentry

Stefanie Metzger - 2.3.2021, 08:49:52

Sentry for error reporting should be set up

Environment: -
Linked issues:

Exercise 4 Screen (Success/Fail State)

Exercises 4 Screen (Success/Fail)

In this screen a user gets the final feedback (correct/incorrect). In addition, they can go to the next exercise.

DESIGN: Success state design & Fail state design

User Story

  • As a learner, I want to receive accurate feedback, so that I know how I did

Acceptance Criteria

  • In the header (on the right side) there should be numbers that indicate the progress (i.e. 4 of 10)
  • In the header (on the left side) there's an END SESSION button that opens up a modal
  • The modal contains a description and a 3 buttons (Continue & the X button -> go back to exercise, End -> Go back to Exercise Overview screen)
  • Underneath the header there should be a progress bar, that correlated with how many exercises have been done (relative to the total amount)
  • The sound button should be enabled, leaving the learner to listen to the word as many times as they want before they go to the next word
  • Underneath the input field there should be a box with feedback. It should include an icon and a message
  • The screen only shows 1 button "NEXT WORD ->" which takes the learner to the next word

Summary Screen (Results Overview Screen)

Summary Screen (Results Overview Screen)

In the Results Overview Screen the learner can view the summarised feedback of their performance from exercise 2, 3 or 4.

DESIGN: Design

User Story

  • As a learner, I want to see a summary of my feedback, so I can quickly get a sense of how I performed
  • As a learner, I want go to each specific feedback (correct/incorrect/almost correct) directly, so I view my feedback in a more structured fashion

Acceptance Criteria

  • Should display a header that includes only a finish button that goes to the Exercises Overview screen
  • Should show 3 bars (Correct/Almost Correct/Incorrect) that, when tapped, brings the learner to the corresponding results screen
  • Each bar should include the following: (1) an icon, (2) a title, (3) a description, and (4) an arrow that indicates it can be tapped
  • Should display a description that includes the following: (1) a title (Results Overview), (2) exercise description, and (3) difficulty levels (expressed in trophies)
  • Should show a button that allows the learner to repeat the complete exercise

Exercises Overview Screen

Exercises Overview Screen

In this screen a user can choose an exercise to start learning German words, specific to their chosen profession and subcategory.

DESIGN: Zeplin

User Story

  • As a learner, I can go back to the Profession Subcategory Screen
  • As a learner, I can choose an exercise ranging from difficulty level 1 - 4

Acceptance Criteria

  • In the header there's a SUBCATEGORIES OVERVIEW button that brings the user to the previous screen
  • There is a title and description of the screen
  • It shows a list of various buttons, that indicate the 4 different exercises
  • Each button shows its title, a brief description and difficulty level (expressed in icons)
  • Clicking a button will bring the user to the appropriate exercise screen

LUN-18: Add unit testing to CI

Stefanie Metzger - 30.3.2021, 12:18:19

  • unit testing should be added to check job

Environment: -
Linked issues:

  • Blocks: LUN-17

LUN-26: Promote the iOS app

Stefanie Metzger - 30.3.2021, 12:36:04

promote app from testflight to production

adjust prod_delivery workflow

release-notes should be published

Environment: -
Linked issues:

  • Blocks: LUN-30

Profession Subcategory Screen

Profession Subcategory Screen

In this screen a user can choose a subcategory within their chosen profession. This will lead them to the exercises screen.

DESIGN: Zeplin

User Story

  • As a learner, I can go back to the Profession Screen
  • As a learner, I can choose a subcategory within my chosen profession

Acceptance Criteria

  • In the header there's a PROFESSION OVERVIEW button that brings the user to the previous screen
  • There is a title and description of the screen
  • It shows a list of various buttons, that indicate subcategories of the profession
  • Clickin a button will bring the user to the Exercises Screen

LUN-4: Optimize folder structure

Stefanie Metzger - 2.3.2021, 08:33:04

src-folder should be created. Components, constants, interfaces, navigation, screens and utils folders should be moved into new src-folder. Navigation is an component and should be moved to components and renamed to Navigator with an capital N. Screens Subfolders should be removed. Alle screens are in directly in the screen folder. types.ts file should be moved to navigation folder and be renamed to navigationTypes.ts

Environment: -
Linked issues:

  • Blocks: LUN-5
  • Blocks: LUN-6
  • Blocks: LUN-7
  • Blocks: LUN-12
  • Blocks: LUN-13
  • Blocks: LUN-3

Check entry by using enter / make screen scrollable

It should be possible to check entry (and forward to next vocab) by pressing the enter on keyboard. If the input field is focussed, the input field should move above the keyboard so that it is fully visible. For that action the screen might be scrollable to the picture can move up to make space for the input field.

this only effects exercise 4 - vocabulary trainer

https://user-images.githubusercontent.com/4182469/111353623-c5aaa780-8685-11eb-83a1-0b6fbca7f777.mov
https://user-images.githubusercontent.com/4182469/111353603-c0e5f380-8685-11eb-98ef-604eba4f2afd.mov

LUN-29: Promote the android app

Stefanie Metzger - 30.3.2021, 12:58:11

promote app from internal to beta track and to production

Adjust uploadto_playstore in fastfile

Maybe build-lane must also do signing

Environment: -
Linked issues:

  • Blocks: LUN-30
  • Blocks: LUN-28

Exercise 4 Screen (Initial State)

Exercises 4 Screen (Initial)

In this screen a user has to insert an article and word (i.e. "The book") in German, based on what the picture depicts.

DESIGN: Zeplin

User Story

  • As a learner, I want to improve my German language understanding, so that I can be more productive in my profession
  • As a learner, I want to know how far along my progress is, so that I have a better awareness of how long it will still take
  • As a leaner, I want to be able to listen to the word, so that I can match the word with the pronunciation

Acceptance Criteria

  • In the header (on the right side) there should be numbers that indicate the progress (i.e. 4 of 10)
  • In the header (on the left side) there's an END SESSION button that opens up a modal
  • The modal contains a description and a 3 buttons (Continue & the X button -> go back to exercise, End -> Go back to Exercise Overview screen)
  • Underneath the header there should be a progress bar, that correlated with how many exercises have been done (relative to the total amount)
  • The sound button should be disabled, until the learner has checked their entry
  • Right after the entry has been checked, the sound icon will become enabled (but does not play until the user taps on it)
  • The input field should require both an article and the noun (i.e. der Nagel)
  • When the input field is active it should highlight the border
  • When there is content in the input field, an "X" should appear on the right side
  • When the "X" is tapped in the input field, the content should be emptied
  • The "CHECK ENTRY" button only becomes active when a learner has typed in something
  • When "CHECK ENTRY" has been tapped it should get back feedback
  • When "I GIVE UP!" has been tapped it should go to the next word (and mark current word as incorrect)
  • When "TRY LATER" gets tapped it should show the word again at the end of the last one.
  • A tooltip should appear if a user didn't type in an article , but did tap outside of the input field

LUN-12: Refactor css of components

Stefanie Metzger - 2.3.2021, 08:50:34

Css of all flies in src/components should be beautified, so adjust the following:

  • replace StyleSheet.create(..) with Styled Components
  • remove all magic numbers everywhere
  • create generic classes if possible
  • use preffered flow-layout

Environment: -
Linked issues:

  • Blocks: LUN-4

LUN-27: Upload android app to browserstack

Stefanie Metzger - 30.3.2021, 12:36:59

  • add bowserstackuploadlive lane
  • android app can be tested on browserstack
  • job should be manually

Environment: -
Linked issues:

  • Blocks: LUN-22

LUN-23: Setup fastlane for iOS

Stefanie Metzger - 30.3.2021, 12:31:10

  • generate certificates

  • add apple_auth lane

 

Environment: -
Linked issues:

  • Blocks: LUN-25
  • Blocks: LUN-21
  • Blocks: LUN-22

LUN-3: Move Interfaces

Stefanie Metzger - 2.3.2021, 08:32:06

the interfaces in the interface folder, should be moved to the components or screens where they are used.

Environment: -
Linked issues:

  • Blocks: LUN-4
  • Blocks: LUN-2

Splash Screen

Splash Screen

This is the first screen a user sees when they open the application.

DESIGN: Zeplin

User Story

  • As a learner, I can view the app introduction once I open the app for the first time after installation.

Acceptance Criteria

  • Shows Lunes Logo in the center of screen
  • Shows 6 icons in various places according to design
  • Displays screen for 3-5 seconds
  • Redirects to Profession Selection screen

Summary Screen (Initial Feedback Screen)

Summary Screen (Initial Feedback)

In this screen a user gets a general feedback message on how they did in the exercise.

DESIGN: Design

User Story

  • As a learner, I want to get immediate feedback, so that I have a general idea of how I did
  • As a learner, I want to repeat the exercise, so that I can improve immediately
  • As a learn, I want to check my results, so that I can learn from my mistakes

Acceptance Criteria

  • In the screen description, should show (1) an icon, (2) a general feedback (which changes depending on how well the learner did)
  • The general feedback can be one of three (content is subject to change later): (0 - 3) You still have some trouble with the basics, please retry! (4 - 7) You're getting there. Please retry! (>7) Keep it up! You've mastered the exercise well.
  • Should include 2 buttons: (1) CHECK MY RESULTS, which goes to the Results Overview screen, and (2) REPEAT EXERCISE, which allows the learner to repeat everything again

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.