All Projects → akiver → wordsreminder

akiver / wordsreminder

Licence: MIT license
React native application to save words in dictionaries.

Programming Languages

typescript
32286 projects
java
68154 projects - #9 most used programming language
C++
36643 projects - #6 most used programming language
javascript
184084 projects - #8 most used programming language
Objective-C++
1391 projects
Makefile
30231 projects

Projects that are alternatives of or similar to wordsreminder

react-native-firebase-firestore-crud-example
React Native Firebase Tutorial: Build CRUD Firestore App
Stars: ✭ 24 (-27.27%)
Mutual labels:  react-native-firebase, firestore
foundry-cli
Foundry makes the development of Firebase Functions fast by giving you an out-of-the-box working cloud environment for your development with an access to your production data. It's a CLI tool that gives you a continuous REPL-like feedback about your Firebase Functions.
Stars: ✭ 49 (+48.48%)
Mutual labels:  firestore
whatsapp-clone-react
Build a WhatsApp Clone with React JS and FireBase.
Stars: ✭ 38 (+15.15%)
Mutual labels:  firestore
AngularPos
A real-time, simple web Point of Sale system written with Angular 12, Firebase (Cloud Firestore), Bootstrap 4 and PrimeNg
Stars: ✭ 67 (+103.03%)
Mutual labels:  firestore
cms30
🙌 #CMS30 | Free 30 CMS templates
Stars: ✭ 23 (-30.3%)
Mutual labels:  firestore
godot-android-plugin-firebase
Godot 3.2.2 Android plugin for Firebase
Stars: ✭ 41 (+24.24%)
Mutual labels:  firestore
React-Netflix-Clone
A Fully Responsive clone of Netflix website built using React.JS as a Front-end & Firebase as a Back-end.
Stars: ✭ 91 (+175.76%)
Mutual labels:  firestore
react-firebase-context
A basic set of components that help dealing with Firebase services
Stars: ✭ 41 (+24.24%)
Mutual labels:  firestore
vue-blog
Book blog
Stars: ✭ 31 (-6.06%)
Mutual labels:  firestore
JewelCase
This is the source code for JewelCase, a sample app demonstrating how to use SwiftUI and Firebase together. This slide deck discusses the architecture of the app: https://www.slideshare.net/peterfriese/building-swiftui-apps-with-firebase
Stars: ✭ 42 (+27.27%)
Mutual labels:  firestore
flutter-auth-ui
flutter-auth-ui is an authentication library for flutter web applications. It uses Firebase auth as security as a service (SECaaS) provider. It implements UI to register user, validate email, sign in, sign out, restore password, access firestore..
Stars: ✭ 59 (+78.79%)
Mutual labels:  firestore
orkan
A content management toolkit for building and managing dynamic React applications with ease.
Stars: ✭ 25 (-24.24%)
Mutual labels:  firestore
go-firestorm
Simple Go ORM for Google/Firebase Cloud Firestore
Stars: ✭ 39 (+18.18%)
Mutual labels:  firestore
serverless-rest-api
Building RESTful Web APIs with Firebase Cloud Function, Firestore, Express and TypeScript
Stars: ✭ 103 (+212.12%)
Mutual labels:  firestore
vue-js-3-firebase-firestore
Vue 3 Firebase Tutorial: Build Firestore CRUD Web Application
Stars: ✭ 34 (+3.03%)
Mutual labels:  firestore
squanchy-flutter
Flutter implementation of the Squanchy conference app
Stars: ✭ 56 (+69.7%)
Mutual labels:  firestore
flutter-app
Full Feature Todos Flutter Mobile app with fireStore integration.
Stars: ✭ 138 (+318.18%)
Mutual labels:  firestore
firebase-bundle
A Symfony Bundle for the Firebase PHP Admin SDK
Stars: ✭ 112 (+239.39%)
Mutual labels:  firestore
firecms
Awesome Firebase/Firestore-based CMS. The missing admin panel for your Firebase project!
Stars: ✭ 686 (+1978.79%)
Mutual labels:  firestore
demo-firebase-js
A simple Web application that demonstrates how the end-to-end encryption works. The application uses firebase as a backend service for authentication and chat messaging, and Virgil E3Kit SDK for end-to-end encryption.
Stars: ✭ 31 (-6.06%)
Mutual labels:  firestore

WordsReminder

Simple mobile application to save words in dictionaries, built with react-native and react-native-firebase.

Demo

WordsReminder

Click on the picture to watch a brief video ↑

Setup

I made this application for personal usage and is not intended to be on Apple / Google stores, you will have to create your own Firebase project.

Common platform steps:

Firestore

  1. Create a Firebase project.
  2. Enable Email/Password sign-in provider from the Firebase console (Authentication section).
  3. Create a Firestore database from the Database section, when you have to choose the database rules, select locked mode, you will adjust the rules in the next step.
  4. Update the database rules from Database -> Rules and copy paste the following snippet:
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth.uid != null;
    }
  }
}

This rule allows only authenticated user to read / write into the database.

Project

  1. Install react-native on your computer. The project is not using Expo, as a result you have to follow the instructions from the React Native CLI Quickstart section of the official documentation. Make sure you are able to launch an Hello World react-native application before continuing!
  2. git clone https://github.com/akiver/wordsreminder.git (or download the project archive).
  3. cp .env.example .env
  4. yarn (never tested with npm)

Follow the instructions below for your target platform.

iOS

Follow common steps from the setup section before continuing!

  1. sudo gem install cocoapods (if you doesn't have CocoaPods installed on your MAC).
  2. Generate your own GoogleService-Info.plist (When asking for a iOS bundle ID, use someting like com.myusername.wordsreminder).
  3. Copy your GoogleService-Info.plist into ios/WordsReminder/GoogleService-Info.plist
  4. yarn pod
  5. yarn ios (will run the app in simulator)

Android

Follow common steps from the setup section before continuing!

  1. Download your google-services.json from the project settings of the firebase console.
  2. Edit this file and rename the field package_name to com.wordsreminder.
  3. Move the file into android/app/google-services.json.
  4. yarn android (will run in simulator).

Install on device (release)

iOS

Follow iOS steps from the setup section before continuing!

  1. Setup a code signin team account (You don't need to be part of Apple Developer Program to install the app on your own device).
  2. yarn global add ios-deploy (Required to install the application wihtout xCode)
  3. yarn ios:release --device="Device name" You can find your device's name from Settings -> General -> About.

Android

Follow Android steps from the setup section before continuing!

  1. Generate a signin key with the official doc.
  2. yarn android:release --deviceId="Device ID" You can find your device ID with adb devices.

E2E tests

End-to-end tests are made with Detox and it uses a real Firestore database.

When building the application for E2E tests, the Firestore collections names differ from those used in the "real" application. Default names should be fine but you can change it from the .env file. All variables with E2E_ prefix are related to E2E tests.

Each test suites must be able to run independently. You can run 1 specific test suites with yarn e2e:test:ios e2e/tests/sign-in.test.ts for example.

Before running yarn e2e:build:ios or yarn e2e:build:android, make sure to kill any Metro processes, otherwise it may use the wrong collections names if Metro was started by yarn ios or yarn android!

Setup

  1. Generate a service account key (it's a json file) from the Firebase console https://console.firebase.google.com/project/PROJECT-ID/settings/serviceaccounts/adminsdk (replace PROJECT-ID by your Firebase project ID in the URL).
  2. Copy paste the json file into the e2e folder and rename it to google-services.json.
  3. (optional) You can change the E2E_xxx variables from the .env if needed.

iOS

  1. Make sure to meet the Detox requirements and install applesimutils.
  2. yarn e2e:build:ios
  3. yarn e2e:test:ios

When running tests from the simulator, make sure the keyboard is visible, otherwise tests will fail because typing will not work! (it's configurable from Hardware => Keyboard => Toggle software keyboard)

If you want to run E2E tests with the release build, use yarn e2e:build:ios:release then yarn e2e:test:ios:release.

Android

  1. yarn e2e:start
  2. yarn e2e:build:android
  3. yarn e2e:test:android

If you want to run E2E tests with the release build, use yarn e2e:build:android:release then yarn e2e:test:android:release.

Migrations

Migrations allow to change database scheme, data... All migrations must be inside the migrations folder and export a run function.

Setup

  1. Replace PROJECT_ID by your project ID in the .env file, your project ID is available from the Firebase console.
  2. Create a service account key (it's a json file) from the Google console.
  3. Rename the .json file to serviceAccountKey.json and paste it into the migrations folder.
  4. yarn migrate

SVG

To generate a svg into a React component:

npx @svgr/cli --icon --native file.svg

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].