Full-Stack CRUD Application With Angular + Firebase Database + Authentication + REST APIs

Overview

BookCompany


Full-Stack CRUD Application With Angular + Firebase Database + Authentication + REST APIs


Technologies & Features

  • Angular front-end framework
  • Firebase back-end real-time NoSQL cloud database
  • RESTful APIs: Google Maps & New York Times.
  • NgRx state management
  • Google Registrar

Table of Contents

What is BookCompany?

BookCompany is a web app to store the right book, song, or even podcast for every moment on your personal collection.

Landing Page

Integrated REST APIs

Architectural style for an application program interface (API) that uses HTTP requests to access and use data.

Google Maps Platform

Dynamic and interactive maps, location, and geospatial experiences for the app. Click Google Maps Platform to get started with the Google Cloud Console to manage services, credentials, billing, APIs, and SDKs.

Maps JavaScript API and Places API

Users can search for landmarks associated with their favorite books or songs without having to leave the app. The Places API contains location data for over 200 million places and autocomplete. With the Maps JavaScript API, the autocomplete mechanism is integrated with the map.

Landmarks Search Page

Directions API

The Directions API is a web service that uses an HTTP request to return JSON or XML-formatted directions between landmarks and important locations for driving, cycling, transit, and walking.

Landmarks Directions Page

New York Times Books API

The Books API provides information about book reviews and the New York Times Best Sellers lists.

Book Reviews

The book reviews service lets users search NYT book reviews by author.

Book Reviews Page

Best Sellers List

The best sellers service returns a list of Times best sellers list (for hardcover-fiction) updated weekly.

Best Sellers Page

Authentication

Token-based authentication and Firebase Authentication SDK are integrated into this app to provide methods to create and manage users.

Login

Token-based Authentication

  • Login Requested
    • Dispatch LOGIN Requested action
    • Add action
    • Add effect (to dispatch either LOGIN Success or AuthError)
  • Login Success
    • Dispatch LOGIN Success action
    • Add reducer (to create new state)
      • Authentication state isLoggedIn is set to true and token and email added to the user object during successful log-ins.
      • Authentication state isLoading is set to false.
    • Add effect (to add token to localStorage and redirect user)
      • Returns an observable identical to the source.
      • Updates online status to true.
  • Login Failed
    • Dispatch AuthError action
    • Add reducer (to create new state)

Firebase Authentication

  • Generate auth service and user interface files to create a Firebase authentication system with Angular.
  • Use auth service to create login authentication with Angular and Firebase.
  • Social logins using Firebase’s Google and Twitter auth provider.

Login Page

Register

Token-based

  • Register Requested
    • Dispatch REGISTER Requested action
    • Add action
    • Add effect (to dispatch either REGISTER Completed or AuthError)
  • Register Completed
    • Add action
    • switchMap to LOGIN Success and Update Profile
  • Register Failed
    • Dispatch AuthError action

User Registration with Angular Firebase

  • Use auth service for user registration with Angular and Firebase.
  • Sign up using Firebase’s Google and Twitter auth provider.

Register Page

User Profile

Profile section to change username and profile picture, look up calendar events, or simply update profile status.

Profile Page

Personal Collection

Main section to allow users to store their projects in their own collection.

Projects

Create

Home Page (Upload Modal)

Update

Home Page (Edit Modal)

Delete

Home Page (Delete Modal)

Getting Started

Preconditions

  • Google Maps API Key
  • New York Times API Key Auth
  • Firebase Cloud Console Account
  • Node and npm

Installation

cd bookcompany
npm install

Development Server

Run npm start for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.

Tests

Unit tests

  • Run ng test to execute the unit tests via Karma.

End-to-end tests

  • Run ng e2e to execute the end-to-end tests via Protractor.

Build

Run ng build to build the project. The build artifacts will be stored in the dist/ directory. Use the --prod flag for a production build.

Author

Rodrigo E. Bravo

[email protected]

License: MIT

You might also like...

The Chat'Inn is a simple and minimal realtime chat application whose database is powered by firebase and firestore.

The Chat-in The Chat'Inn is a simple and minimal realtime chat application whose database is powered by firebase and firestore. The frontend part is c

Aug 8, 2022

Piccloud is a full-stack (Angular & Spring Boot) online image clipboard that lets you share images over the internet by generating a unique URL. Others can access the image via this URL.

Piccloud Piccloud is a full-stack application built with Angular & Spring Boot. It is an online image clipboard that lets you share images over the in

Dec 15, 2022

It is a solo Project and In this repo I try to build a E-Commerce full-stack website with MERN stack technologies. For Practice purpose.

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

Aug 3, 2022

API REST de código aberto para testes frontend aplicando CRUD.

API REST de código aberto para testes frontend aplicando CRUD.

OPEN CRUD API API pública para cadastro de usuários para ser usada em testes. Ajustes e melhorias O projeto ainda está em desenvolvimento e as próxima

Mar 22, 2022

A small web app that tries to imitate the desktop web version of amazon site, you can add items to the basket, delete them, and have your user authentication feature thanks to Firebase.

A small web app that tries to imitate the desktop web version of amazon site, you can add items to the basket, delete them, and have your user authentication feature thanks to Firebase.

Features Here's the feature's included in this project 👨‍👩‍👧‍👦 Login Page 📦 Products Page 🛒 Cart and Checkout Page 📝 Sign up function with Goog

Aug 22, 2022

CRUD APIs in NodeJS, Express and MySQL

Create CRUD APIs in NodeJS, Express and MySQL This is a simple NodeJS, Express and MySQL CRUD API example. that allows you to create, read, update and

Oct 19, 2022

We are creating a Library that would ensure developers do not reinvent the wheel anymore as far as Authentication is concerned. Developers can easily register and download authentication codes that suits their need at any point.

We are creating a Library that would ensure developers do not reinvent the wheel anymore as far as Authentication is concerned. Developers can easily register and download authentication codes that suits their need at any point.

#AuthWiki Resource Product Documentation Figma Database Schema First Presentation Live Link API Documentation Individual Contributions User Activity U

Dec 2, 2022

An Amazon Kendra REST API CDK example with an API Gateway, including authentication with AWS Cognito and AWS X-Ray Tracing

An Amazon Kendra REST API CDK example with an API Gateway, including authentication with AWS Cognito and AWS X-Ray Tracing

Amazon Kendra Web Service CDK Sample Amazon Kendra has a robust JSON API for use with the AWS SDK (software development kit), but does not expose endp

Nov 28, 2022

⚡ It is a simplified database module with multiple functions that you can use simultaneously with sqlite, yaml, firebase and json.

Prisma Database Developed with 💙 by Roxza ⚡ An easy, open source database 📦 Installation npm i prisma.db --save yarn add prisma.db 🔮 Importing impo

Jan 3, 2023
Aplicação Angular CRUD para uso e prática do Firebase com Authentication, Firestore e Storage

DiariosApp This project was generated with Angular CLI version 13.3.3. Development server Run ng serve for a dev server. Navigate to http://localhost:

José Almir 4 Jun 3, 2022
Angular 14 Firebase CRUD with Realtime Database - AngularFireDatabase Object and List example: create, retrieve, update, delete

Angular 14 Firebase CRUD example with Realtime DataBase | AngularFireDatabase Build Angular 14 CRUD example with Firebase Realtime Database that uses

null 7 Dec 26, 2022
Login of app to remind to drink water, using Firebase tools like Firebase Auth and Firebase Firestore

Water Reminder Login App Menu Contents Motivation Final Images How to download the project and run it? Technologies utilized Dev ?? Motivation This ap

Ilda Neta 10 Aug 22, 2022
Firebase Angular Skeleton - Quickly create an application with a fully functional authentication, authorization and user management system.

FAngS - Firebase Angular Skeleton FAngS lets you quickly create an application with a fully functional authentication, authorization and user manageme

Ryan Lefebvre 7 Sep 21, 2022
A full CRUD application built using the MELN(MongoDB,Express,LiquidJS,Node) stack.

Pokedex Your mission is to be the very best, like no one ever was, at making a Pokémon manager (a Pokédex). Learning Objectives Full CRUD App Prerequi

Anthony Njoroge 5 Sep 23, 2022
A full stack application that uses an authentication system to allow FAA Inspectors, Airliners, and Aircraft Technicians to update progress on their work all while keeping a log of records on projects completed.

A full stack application that uses an authentication system to allow FAA Inspectors, Airliners, and Aircraft Technicians to update progress on their work all while keeping a log of records on projects completed.

BinaryBitBytes 3 Jun 13, 2022
Firebase Storage with Angular 14 example: Upload File, Retrieve, Display, Download Url & Delete using @angular/fire AngularFireStorage

Angular 14 File Upload to Firebase Storage example I will show you how to make Angular 14 Firebase Storage: File Upload/Display/Delete Application usi

null 7 Sep 7, 2022
The Remix Stack with Clerk authentication, Supabase database, Chakra UI, testing, linting, and more.

Remix Bossa Nova Stack Learn more about Remix Stacks. What's in the stack User management with Clerk Database with Supabase Styling with Chakra UI Dep

Clerk 32 Jan 2, 2023
Custom Remix stack using Clerk for authentication and full user management.

New Wave Stack Learn more about Remix Stacks. For more on our thoughts on the New Wave Stack check out our blog post. To view this template in deploym

Charles Wefso 11 Oct 11, 2022
📋 Todo List CRUD and OAuth with Firebase

Todo List CRUD and OAuth with Firebase Esta es una app hecha con React y Firebase en la que puedas crear, leer, actualizar y borrar tareas dentro de u

Adonys Santos 4 May 28, 2022