Giter Club home page Giter Club logo

codephile-mobile's Introduction

Codephile

Codephile is an application specially made for all the competitive coders out there. With features like submission feed, contest reminders, user search, and many more, this app is a perfect companion for stalking your fellow coders and learning from them.

Screenshots

Getting Started

Project structure:-

|- assets { contains icons, images, illustrations }
|- lib
|    |- data
|    |    |- config { contains configuration variables passed at compile-time }
|    |    |- constants { contains app wide constants like asset strings, colors, routes }
|    |    |- services { contains ApiService and StorageService }
|    |- domain
|    |    |- models { contains object models }
|    |    |- repositories { contains repositories according to BLoC architecture pattern }
|    |- presentation { contains UI and BLoC code arranged in folders according to app flow }
|    |    |- components { contains component widgets used throughout the app }
|    |    |- core { contains important classes including the router and the main_app }
|    |- utils { contains utility methods and classes }
|    |-main_development.dart { development entrypoint }
|    |-main_production.dart { production entrypoint }
|- test { contains widget and unit tests arranged in suites }

Setup for development

0. Clone this repo

$ git clone https://github.com/mdgspace/codephile-mobile.git
$ cd codephile-mobile

1. Get dependencies

Fetch pub dependencies required by the app.

$ flutter pub get

2. Generate Freezed models

Some of the code in this app is generate by pub tools.

$ flutter pub run build_runner build --delete-conflicting-outputs

3. Run the app

We've added two .idea and .vscode folders to help you run the app in your IDE of choice. If those aren't working properly, use the following command.

$ flutter build apk --flavor development --target lib/main_development.dart

How to Contribute

We'd love to accept your patches and contributions to this project. There are just a few small guidelines you need to follow.

  • When contributing to this repository, please first discuss the change you wish to make via the issues section before starting any major work.
  • Once you have started work on any issue open a WIP pull request addressing that issue so that we know that someone is working on it.
  • While writing any code for this project ensure that it is well formatted and consistent with the architecture of the rest of the project.
  • Please make sure that you use the standard dart nomenclature.
  • Before committing any change make sure their is no compilation warning or error.

Commit messages

Please start your commits with these prefixes for better understanding among collaborators, based on the type of commit:

  • feat: (addition of a new feature)
  • rfac: (refactoring the code: optimization/ different logic of existing code - output doesn't change, just the way of execution changes)
  • docs: (documenting the code, be it readme, or extra comments)
  • bfix: (bug fixing)
  • chor: (chore - beautifying code, indents, spaces, camelcasing, changing variable names to have an appropriate meaning)
  • ptch: (patches - small changes in code, mainly UI, for example color of a button, incrasing size of tet, etc etc)
  • conf: (configurational settings - changing directory structure, updating gitignore, add libraries, changing manifest etc)
  • test: (adding or editting tests)

codephile-mobile's People

Contributors

aman-singh7 avatar anaisha12 avatar burg3r5 avatar nanonish avatar praeclarumjj3 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

codephile-mobile's Issues

Use following icon

Use the following icon at the following screen. For more details check the designs.

Uniform theme color.

Add a theme at the root level so that widgets like ProgressIndicator and DatePicker use the standard app colours.

Add timer to the "Resend Email" button.

In order to prevent the user from spamming the button, we can add a 30 sec timer to it.

  • Try to avoiding any third party packages.
  • Come up with a clean UI for the timer inside the button.

bug: Acceptance graph of other users isn't correct

Describe the Bug

The acceptance graph on any other profile is same as the user's (ie mine) graph.

Steps to Reproduce

  • Go to any users's profile.
  • Notice the acceptance graph

Expected Behaviour

The acceptance graph of the profile one is visiting should be shown. As in below Screenshots if the user handles arent uploaded of the user, how is acceptance graph filled. Also on checking my acceptance graph, it is the same.

Screenshots/Video

Screenshot_20221031-022008
Screenshot_20221031-022016

Device Information [Optional]

  • OS: Android
  • Device: All mobile devices

Related Issues [Optional]

No

Use flutter_swiper in on-boarding

It would be better to use this lib or something similar for showing the different steps of onboarding instead of navigating to diff pages for each step.

Port notifications to method channel.

Currently we use the flutter_local_notification plugin to set contest notifications. We can improve upon the efficiency and reduce the weight of our application by writing our custom method channel.
This will include:-

  • boilerplate code for communication with the platform.
  • setNotification()
  • getScheduledNotifications()
  • cancelNotification()

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.