/ocyclient

Official client side application of Open Codeyard

Primary LanguageDartMIT LicenseMIT


OCY Client Contributor Covenant

This repo contains source code for the official Flutter Client of Open CodeYard

A higly configurable community website template built using Flutter

Table of Contents

  1. About The Project
  2. Getting Started
  3. Contact



About the project

  🚧Actively under development🚧



  • Screenshots 📱

    Coming Soon

  • Documentation 📓

    • This project uses Effective Dart Principles for documentation
    • Run dart doc . from root of project directory to generate documentation webpage.
  • Features

    • Self Hosted using Firebase
    • FCM for notification (Coming soon)
    • Built using Provider Architecture for clean state management
    • Google and GitHub login support for User Authentication
    • Custom user management logic using Firestore
    • Data caching for optimised network calls
    • Profile Screen
    • Fluid animations
    • Modern, Material UI (we all love this!)
    • Heavyily documented code (who doesn't like clean code)

(back to top)

Getting Started

  For help getting started with Flutter development, view the online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.

  • Project Setup

    • Flutter App:

      • Install Flutter
      • Setting up your ide
      • Fork and clone this repository.
      • cd into ocyclient directory.
      • Run flutter clean command.
      • Run flutter pub get command.
      • Run flutter run command.
    • Firebase:

      • Create a firebase project
      • Add android app with your package name in firebase console.
      • Enable Google Auth from Authentication menu in Firebase.
      • Create a file named env and store github_access_token in it (See env_example.txt file in project root for example). Check this link to see how to create a github access token.
      • Generate SHA-1 key hash for your debug keystore from your pc. This needs to be added to SHA certificate fingerprints section under your android app in Firebase project settings. Without this step Google login won't work.
      • Enable Cloud Firestore
        • Recommended rules for Firestore

            rules_version = '2';
            service cloud.firestore {
              match /databases/{database}/documents {
                match /{document=**} {
                  allow read, write: if
                      request.auth != null;
                }
              }
            }
      • Enable Cloud Storage
      • Download google_services.json from Console -> Project Settings. File is present in app section. SDK instructions found in the same page
      • (Optional) Enable Cloud Messaging from Firebase Console if you wan't notifications to work in your app
      • (Optional) If released to play store get SHA-1 key hash from playstore and upload them to firebase, otherwise google sign in won't work in play store app.
  • How to Contribute?

    Check Contributing.md for guidelines on contributing to this repo.

(back to top)

Contact Us

  If you have a question, please feel free to contact us through email or our telegram community channel.





Made with ❤️ by Open Codeyard