Flutter-Buddies / App

An app with community features like 'calendar of events' and a showcase of member created widgets
16 stars 18 forks source link

Community App

tests build

A Flutter app with community features like a time zone translated calendar of events, list of group projects and a showcase of member created widgets. This app will get published to the app stores and shared among our brand, so get your name in the list!

Contribution notice

Before you start contributing, you need to copy lib/constants/secrets.sample.dart file and name the copy secrets.dart (don't delete the lib/constants/secrets.sample.dart). This is mandatory for app to build and is enough to get you going, but you won't see any events in app. If you wish to contribute to events part of the app, ask admins to give you the key. Then, put the key instead of YOUR_API_KEY in your secrets.dart file.

NOTICE: Don't push secrets.dart to source control, it is in the .gitignore

Adding your widget to the app

The app will have a list of member user created widgets to display.
The app will push your widget on as a new page, but you can have multiple pages.
Your widget will have the entire screen.
Your widget can be anything you want, get creative with a mini-app, a unique animation, or simply post a mi-card, whatever you want.

Some guidelines and best practices to follow:

Steps to add your widget to the app

You need do the following to add your widget to the project

  1. Fork the repo, clone your fork, and checkout a new branch
    1. Fork a copy of the repo at https://github.com/Flutter-Buddies/App on your github account
    2. Clone your forked repo to your development environment
    3. (optional) Checkout a custom "feature" branch (username? widget name?)
  2. Create your widget file or files in a separate folder under a new directory at /lib/widgets/user_widgets/
    • Your directory path should be /lib/widgets/user_widgets// (you can have any number of dirs in yours)
    • You don't need to create a main(), just extend a Widget type class that returns any Widget type.
    • See /lib/widgets/user_widgets/example.dart for reference.
  3. Add part of user_widgets; to the top of your main widget file that you want to hook into the project.
    • See /lib/widgets/user_widgets/example.dart for reference.
  4. Extend and define a custom WidgetInfo class from 'widget_info.dart in your widget file.
    • This class needs a unique name from the other user's WidgetInfo extended classes.
    • See /lib/widgets/user_widgets/example.dart for reference.
  5. Add your project to user_widgets.dart
    1. Add part <path_to>/<your_file>.dart; for your main file to the list of parts in /lib/widgets/user_widgets/user_widgets.dart.
    2. Instantiate your widget info class. Example: ExampleInfo info = ExampleInfo(); and add it to the list widgetInfoList
      • If you add a package to this file, make sure to include pubspec.yaml and why you need it in your pull request.
  6. Push your code to your forked repo and use github to create a pull request describing your widget and anything that is needed to know to merge the code.
    • Check out the community contributing guidelines for assistance.
    • If your PR is approved, your code will be merged, if not you may need to change something, we'll let you know.