Giter Site home page Giter Site logo

monday-morning / project-pegasus Goto Github PK

View Code? Open in Web Editor NEW
10.0 1.0 2.0 9.79 MB

The repository for the Mobile Application of Monday Morning, the official student media body of NIT Rourkela.

Home Page: https://mondaymorning.nitrkl.ac.in

License: MIT License

Kotlin 0.06% Swift 0.17% Objective-C 0.02% Dart 98.96% HTML 0.79%
project pegasus infinity mm monday morning nitr app flutter dart

project-pegasus's Introduction

Monday Morning Logo

Monday Morning

The Official Student Media Body of NIT Rourkela

View LiveView IssuesReport BugsSuggest Features

Project Overview

Project License Project Contributers Project Forks Project Stargazers

Table of Contents
  1. About Monday Morning
  2. About the Project
  3. Built With
  4. Getting Started
  5. License

About Monday Morning

Monday Morning

Monday Morning is the student media body of National Institute of Technology, Rourkela. Since its inception in 2006, it has constantly served as a vital link between the student community and the administration. The weekly e-newsletter serves as a news feed for the students, professors and alumni of the institute, featuring campus activities, department updates, recruitment information, SAC happenings, alumni news, weekly polls and interviews of the Director, Chief Warden, professors, distinguished alumni and dignitaries and exceptional students. Apart from the online weekly edition, Monday Morning also publishes print editions and organises the Open House Discussion.

About the Project

Project Infinity is about updating the Monday Morning website using modern technologies which is divided accross 3 main sub-projects.

  1. project-tahiti: The Client side application of the website.
  2. project-reclamation: The Server application of the website.
  3. project-pegasus: The cross-platform Mobile application of the Monday Morning.

Built With

Following technologies and libraries are used for the development of this website

Getting Started

To setup the project locally follow the steps below.

Contribution guidlines 🎃

NOTE 1: Please abide by the Contributing Guidelines.

NOTE 2: Please abide by the Code of Conduct.

Local Repository Setup

Please refer to the project's style and contribution guidelines for submitting patches and additions. In general, we follow the "fork-and-pull" Git workflow.

  1. Fork the repo on GitHub
  2. Clone the project to your local system
  3. Commit changes to your own separate branch
  4. Push your work back up to your fork
  5. Submit a Pull request so that we can review your changes

Running the project.

  1. Install Flutter on your machine

    Install flutter by selecting the operating system on which you are installing Flutter: Flutter installation tutorial

    To check if you have flutter installed along wtih proper necesarry SDKs installed run flutter doctor

  2. Fork and Clone the Repo

    Fork the repo by clicking on the Fork button on the top right corner of the page. To clone this repository, run git clone https://github.com/Monday-Morning/project-pegasus.git Then run cd app

  3. Get Packages

    Make sure you are in the project-pegasus/app directory

    • From the terminal: Run flutter pub get. OR
    • From Android Studio/IntelliJ: Click Packages get in the action ribbon at the top of pubspec.yaml.
    • From VS Code: Click Get Packages located in right side of the action ribbon at the top of pubspec.yaml.
  4. Configure

    Make sure you are in the project-pegasus/app directory

    • Activate FlutterFire by running dart pub global activate flutterfire_cli.
    • Configure the project by running dart pub global run flutterfire_cli:flutterfire configure.
    • You can use firebase emulator to run the project.
  5. Build

    To build the project run flutter pub run build_runner build.

Run the App

On terminal:

  • Check that an Android device is running by running flutter devices. If none are shown, follow the device-specific instructions on the Install page for your OS.
  • Run the app with the following command: flutter run .

License

Distributed under the MIT License. See License for more information.

project-pegasus's People

Contributors

ajibeshmohapatra avatar asutoshranjan avatar ritomsonowal avatar rutajdash avatar sambit-sankalp avatar srirampatibanda avatar thesmader avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

project-pegasus's Issues

feat(ci/cd): setup github actions

Possible CI/CD Workflows:

  • feat(ci/cd): Dart Formatter
  • feat(ci/cd): Dart Linter
  • feat(ci/cd): Flutter Unit Tests
  • feat(ci/cd): Firebase Test Lab
  • feat(ci/cd): APK Builds
  • feat(ci/cd): iOS Builds
  • feat(ci/cd): Google Play Release
  • feat(ci/cd): App Store Release

Setup linting for the project

Context:

In order to have a healthier code base and avoid errors, configuring extra lint rules based on our requirements would be helpful.

Requirements:

Extend the linting support to the project by setting required linting rules.

Proposed Solution:

Configure the required rules in analysis_options.yaml using the lint package.

Setup Localization

Context:

For solving the problem of using many string literals inside the app, we have to setup localization for the app.

Requirements:

We will have a single file for defining the string literals in the form of key-value pair whose value we can access anywhere in the app and use it.

Proposed Solutions:

We can use the package easy_localization to solve it.

Setup auto_route for navigation

Context:

Setup auto_route for the project.

Requirements:

We can use auto_route package for making the navigation service of the app easier.

Proposed Solution:

Using auto_route_generator along with auto_route we can generate code for the navigation sevices.

feat: play store app update popup on app launch

Purpose

  • Request the user to update the app when possible
  • (Optional) Enforce a minimum usable version to allow for future breaking changes without backwards compatibility

Additional context
image

Setup Dependency Injection

Context

Configure Dependency Injection for project-pegasus.

Requirements

Instead of manually writing the code for injecting dependencies, use a package to generate code for it.

Proposed solutions

Use injectable along with get_it for code generation.

wip: optimize image loading

Tasks:

  • Implement blurhash to display dummy images
  • Download low quality image variants from imagekit for thumbnails
  • Implement cached network image to prevent same image being downloaded multiple times

Consider using package versions in pubspec.yaml and check in pubspec.lock into repository

  • Without specifying versions in pubspec.yaml versions won't be locked. Package might get upgraded to next major version or to a version with some bug automatically causing unwanted errors during development
  • Having a pubspec.lock in the repo is necessary when you are collaborating with others. So that the exact dependencies are installed reproducibly whenever any developer runs flutter pub get

Setup Theme Manager And Themes

Context:

Setup Theme manager for managing themes.

Requirements:

Use a theme manager to configure and manage multiple themes.

Proposed solution:

stacked_themes package can be used for this purpose.

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.