Skip to content

javebratt/ionic-firebase-capacitor-template

Repository files navigation

Ionic, Angular, Capacitor, and Firebase Template

This is a starter templates for projects using Ionic, Angular, Capacitor, and Firebase.

It covers the building block of most applications.

Description

This will be a template that will showcase multiple use-cases that help you build your next mobile app, either if you want to check out the code for help or inspiration, or download it and modify it to suit your needs.

It will cover a fully working authentication system, interaction with the database, upload/download files from storage, accessing native device functionality, and more.

TODO: Add pictures of the pages once things are a bit more complete.

Getting Started

TODO: Add getting started once the authentication module is completed.

Dependencies

The idea is to showcase Ionic, Angular, AngularFire, Capacitor, and rxjs. I'll add here the list and versions once the first module is completed.

TODO: List the main dependencies here and the version I'll use in the project.

Installing

TODO: Expand on this:

  • Clone, Fork, Download this repo.
  • Run npm install.
  • Inside environment.ts and environment.prod.ts replace the Firebase credentials.
  • Inside .firebaserc replace the items for your firebase application:
{
  "targets": {
    "js-mobile-dev-templates": {
      "hosting": {
        "app": ["javebratt-ionic-firebase-template"]
      }
    }
  },
  "projects": {
    "default": "js-mobile-dev-templates"
  }
}

Executing program

Once you've changed your firebase information you'll be able to run the template with either ionic's or angular's CLI serve command.

ionic serve

Roadmap

The goal for this template is to have most of the things an application will have, this is the current roadmap and the showcase of the progress.

If there are items you'd like added or prioritized let me know, you can open an issue adding the enhancement label.

  • Firebase Initialization and Configuration.
  • Authentication.
    • Auth page with login/signup form.
    • Add buttons for social login.
    • Separate the auth functions to a service.
    • Add send email verification to the signup form.
    • Check the Firebase Authentication Functions to add security checks (For example, only verified emails can log in).
    • Add unit tests
  • CRUD (using Firestore).
    • Master/Detail: A list page with a detail page.
    • Check if I should add an update page or use the detail page as an update?
    • Add the ability to delete an item from the list (Using sliding list items)
    • Add the ability to delete an item from the item's detail page.
    • Explore the posibility of adding filters to demo querying capabilities..
    • Add unit tests
  • Storage (managing files in the cloud).
    • Create a page to upload file.
    • Add another place to upload a picture with the capacitor camera.
    • Add a place to list the files the user has uploaded.
    • Add functionality to delete a file from storage.
    • Add unit tests
  • Cloud Functions.
    • Add a cloud functions that deletes the firestore record for a file when you delete the file from storage.
    • Add a Cloud Function that deletes a file from storage when you delete that file's firestore record.
    • Add a cloud function that deletes all the information about a user when the user is deleted.
    • Create a function to send push notifications to a user.
    • Create a function to send push notifications to a bunch of users. (This can be the same as before taking on parameters).
    • Add unit tests
  • Firebase Hosting.
    • Prepare all the hosting configuration.
    • Prepare the docs to let the user know what they need to modify.
  • Push Notifications.
    • Set up the device to receive push notifications with capacitor.

Authors

Hi, I'm Jorge Vergara, If there's anything I can do to help you with let me know, you can reach me via Twitter at @javebratt.

Contributing

First of all, thank you for wanting to help :)

Right now the best way you can help contribute to this repo is by opening issues to help me decide where to go and what to prioritize.

If you do want to open a PR for something, please reach out first, and we can talk about it to see if it fits 1) the roadmap, and 2) the vision I have for this template.

Changelog

In the future I'll list the latest change here, and with each release I'll add a more detailed version of the changelog at CHANGELOG.md

License

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

About

Template to showcase different use-cases about Ionic, Firebase, Capacitor

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published