ocyclient
                                
                                 ocyclient copied to clipboard
                                
                                    ocyclient copied to clipboard
                            
                            
                            
                        Official client side application of Open Codeyard
   
OCY Client 
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
- 
      About The Project
      - Built With
- Screenshots
- Documentation
- Features
 
- 
      Getting Started
      - Project Setup
- Contribution
 
- Contact
About the project
:construction:Actively under development:construction:
- 
Documentation :notebook: - 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
- 
This project depends heavily on firebase. A few resources to get you started if this is your first Firebase project: 
- 
A few resources to get you started if this is your first Flutter project: 
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 ocyclientdirectory.
- Run flutter cleancommand.
- Run flutter pub getcommand.
- Run flutter runcommand.
 
- 
Firebase: - Create a firebase project
- Add android app with your package name in firebase console.
- Enable Google Auth from Authenticationmenu 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 hashfor your debug keystore from your pc. This needs to be added toSHA certificate fingerprintssection under your android app inFirebase 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.jsonfromConsole->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 hashfrom playstore and upload them to firebase, otherwise google sign in won't work in play store app.
 
 
- 
- 
ContributionCheck out our awesome contributors:Made with contributors-img. 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.