All Projects → tanafaso → tanafaso-frontend

tanafaso / tanafaso-frontend

Licence: MIT license
A Flutter application for Muslims that help them challenge and motivate themselves and their friends to do good deeds in a fun way.

Programming Languages

dart
5743 projects

Projects that are alternatives of or similar to tanafaso-frontend

React Native Open Project
可能是目前最用心收集的 React Native 优秀开源项目大全,公众号【aMarno】www.marno.cn
Stars: ✭ 2,254 (+6730.3%)
Mutual labels:  mobile-app
React Native Dynamic Search Bar
Medium Article: https://freakycoder.com/react-native-library-dynamic-search-bar-c03fea9fae36
Stars: ✭ 225 (+581.82%)
Mutual labels:  mobile-app
Android
IRCCloud Android App
Stars: ✭ 244 (+639.39%)
Mutual labels:  mobile-app
Ionic Starter Template
Reinventing the wheel, again! Sorry Ionic Team... but there are many newbies learning on Youtube!
Stars: ✭ 208 (+530.3%)
Mutual labels:  mobile-app
Buildapks
Really quickly build APKs on handheld device (smartphone or tablet) in Amazon, Android, Chromebook and Windows📲 See https://buildapks.github.io/docsBuildAPKs/setup to start building APKs.
Stars: ✭ 218 (+560.61%)
Mutual labels:  mobile-app
React Native Hero
🤘 A super duper easy hero unit react-native component with support for dynamic image, dynamic sizing, color overlays, and more
Stars: ✭ 234 (+609.09%)
Mutual labels:  mobile-app
Wq
📱🌐📋 wq: a modular framework supporting web / native geographic data collection apps for mobile surveys and citizen science. Powered by Django REST Framework, Redux, React, and Material UI.
Stars: ✭ 182 (+451.52%)
Mutual labels:  mobile-app
Flutter Osc
基于Google Flutter的开源中国客户端,支持Android和iOS。
Stars: ✭ 2,793 (+8363.64%)
Mutual labels:  mobile-app
Threema Ios
Threema App for iOS.
Stars: ✭ 220 (+566.67%)
Mutual labels:  mobile-app
Ios
IRCCloud iOS App
Stars: ✭ 243 (+636.36%)
Mutual labels:  mobile-app
Harpy
A Twitter app built with Flutter
Stars: ✭ 211 (+539.39%)
Mutual labels:  mobile-app
Hackerbuzz Reactnative
A Hacker News Reader built in React Native for iOS and Android
Stars: ✭ 220 (+566.67%)
Mutual labels:  mobile-app
Photos
[DEPRECATED] Encrypted, secure, decentralized personal data wallet -- technology behind textile.photos
Stars: ✭ 236 (+615.15%)
Mutual labels:  mobile-app
Android
📱 Nextcloud Android app
Stars: ✭ 2,669 (+7987.88%)
Mutual labels:  mobile-app
Fultter Example App
一个功能完整齐全的Bloc模式Flutter App项目。🍨更关注架构的SPA应用。,使用Node作为后台系统,使用了部分官方plugin,大体功能自己封装。🥰 有用请Star。
Stars: ✭ 248 (+651.52%)
Mutual labels:  mobile-app
Newsapp
NewsApp
Stars: ✭ 183 (+454.55%)
Mutual labels:  mobile-app
Drupalgap
An application development kit for Drupal websites.
Stars: ✭ 228 (+590.91%)
Mutual labels:  mobile-app
fanga
A manga reader and downloader made with flutter
Stars: ✭ 61 (+84.85%)
Mutual labels:  mobile-app
Mobileapp Pentest Cheatsheet
The Mobile App Pentest cheat sheet was created to provide concise collection of high value information on specific mobile application penetration testing topics.
Stars: ✭ 3,051 (+9145.45%)
Mutual labels:  mobile-app
Pocketflow
An Automatic Model Compression (AutoMC) framework for developing smaller and faster AI applications.
Stars: ✭ 2,672 (+7996.97%)
Mutual labels:  mobile-app

🔥 تنافسوا

Code Formatter and Analayzer Notifications Disabled (for ease of open source contributions)

A Flutter application for Muslims that help them challenge and motivate themselves and their friends to read Azkar in a fun way.

On Play Store & On App Store

Also, take a look at the Backend repository.

Screenshot_1639467611 Screenshot_1639467257 Screenshot_1639467166
Screenshot_1639466941 Screenshot_1639466636 Screenshot_1639466561

Setting up a Development Environment

Git

To set up a local development environment, you have to do the following :

  • Fork tanafaso-frontend
  • Clone your fork using git clone https://github.com/<your-github-username>/tanafaso-frontend
  • Navigate to your local repository using your cmd/terminal based on your local environment
  • Check that your fork is the origin remote using git remote -v, if it is not then added using git remote add origin https://github.com/<your-github-username>/tanafaso-frontend
  • Add the original project as upstream remote using git remote add upstream https://github.com/tanafaso/tanafaso-frontend
  • Congratulations, you can start contribute now, but make sure you create branch for every proposed change you make.

Test Accounts

To get started quickly, you can sign in using Facebook with any of the following test accounts and feel free to add friendships or to create challenges with other test accounts.

Facebook Test Email Password
[email protected] tanafasotestuser
[email protected] tanafasotestuser
[email protected] tanafasotestuser
[email protected] tanafasotestuser

Note on Firebase Notifications Development

Please note that if you don't intend to do changes regarding notifications, you have to comment the line apply plugin: 'com.google.gms.google-services' in file android/app/build.gradle so as to be able to build the android project.

If you intend to do changes regarding notifications, please create a firebase cloud messaging testing project and then move the google-services.json file you will obtain from firebase to android/app directory.

Dependencies

Dependencies for Android

  • Android Studio IDE
  • Flutter SDK
  • Java SDK

Dependencies for IOS

  • Xcode IDE

For more information about dependencies, you can check the flutter documentation.

Code GuideLines

  • Use snake case for file names.
  • The filename should correspond to the name of the primary class in the file.
  • Names of files that contains widgets that take the whole screen should end with the suffix: _screen.dart, for example, signup or login takes up the whole screen for authentication.
  • Names of files that contains widgets that don't take the whole screen should end with the suffix: _widget.dart, for example, invite friends from facebook or twitter is a widget since it is part of the screen widget, but does not take the whole screen.
  • Use Camel Case convention for class and enum names.
  • Name (classes, variables, functions, modules) in a meaningful name which describe its functionality.
  • Make sure that all .dart files are formatted using flutter format command.

Code Structure

Assets (pictures, fonts and certificates) can be found in the assets/ folder.

As you may already know, the cool thing about flutter is that you write code once in dart and then flutter does the hard work of compiling it into native Android and iOS code. You can find the compiled native code in the following directories (Note that you would rarely need to change code in these directories):

All the dart code can be found in the lib/ directory.

  • lib/models/: Contains the definitions of all of the models used in the application (e.g. User, Challenge , etc...) and also defines how every model should be encoded and decoded.
  • lib/net/: Implements the wire between the frontend and the backend (tanafaso/tanafas-backend).
  • lib/utils/: Contains classes that provide utilities that will be used throughout the application code.
  • lib/views/: Contains all of the declarations of the user interface.
    • *Screen.dart: Classes that end with the suffix "Screen" are declaring a whole screen that the user will see.
    • *Widget.dart: Classes that end with the suffix "Widget" are declaring a widget that will be part of the user screen.

Contributing

(Optionally) join Tanafaso's discord server to give feedback, propose new features or ask for help.

There are a lot of ways you can contribute to this project. You can filter issues by good first issue label to get started with an issue that is easy to fix.

  • Suggest new features by filing an issue.
  • Report bugs by filing an issue.
  • Add code documentation, so that it is easier for future contributers to ramp-up.
  • Add unit tests (Read The Testing Strategy).
  • Add widget tests (Read The Testing Strategy).
  • Refactor the code to make it more readable, maintainable and scalable.
  • Add pull requests with bug fixes.
  • Add pull requests with new features.

License

The application code is licensed under MIT LICENSE.

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].