Skip to content

Apsistec/dw-portfolio

Repository files navigation

Contributors Forks Stargazers Issues MIT License


Logo

dw-portfolio

An interactive portfolio PWA showcasing my skills and experience with the latest web technologies. Visitors can explore my past projects, gaining insights into my capabilities in areas like Angular, Ionic, Firebase, and GCP. The PWA design ensures a seamless and performant experience across any device, even when offline.
Explore the docs »

View Demo · Report Bug · Request Feature

TABLE OF CONTENTS

Table of Contents
  1. Tech Stack
  2. About the Project
  3. Getting Started
  4. Installation
  5. Usage
  6. Roadmap
  7. Contributing
  8. License
  9. Contributors
  10. Acknowledgments

Tech Stack

About The Project

A portfolio for Douglas White presenting some of the functionality available in an Ionic progressive web application.

Built With

Getting Started

The following steps will help you get a local clone up and running

Installation

  1. Install NodeJS

  2. Clone the repo:

    git clone https://github.com/apsistec/dw-portfolio.git

  3. Install NPM packages

    npm install

  4. Using npm, install:

    npm install @angular/cli@latest --global

    npm install @ionic/cli@latest --global

    npm install firebase-tools@latest --global

    npm install @ionic/angular@latest

Acquire Accounts

  1. Get a free Firebase Account at https://firebase.com
  2. Get a free Sendgrid Account at https://app.sendgrid.com

Add PWA Features

  1. Install Angular PWA tools

    ng add @angular/pwa

  2. Install & Run Capacitor Assets tool

    npm i @capacitor/assets

Add Firebase

  1. Install Angular Firebase tools

    ng add @angular/fire

  2. Enter your Firebase API key

    environments/environment.ts & environments/environment.prod.ts

    Example:

    export const environment = {
      production: "boolean",
      firebaseConfig: {
        apiKey: "string",
        authDomain: "string",
        databaseURL: "string",
        projectId: "string",
        storageBucket: "string",
        messagingSenderId: "string",
        appId: "string",
        measurementId: "string",
      },
    };
  3. Initialize Firebase

    firebase init

    (back to top)

Build & Deploy

  1. Work on the app code with hot-reload

    ionic serve

  2. Install Sendgrid

    cd functions

    npm i @sendgrid/mail

  3. Compile the function code

    npm install

    ng build

    cd -

  4. Compile the app code -production quality

    ionic build --prod

  5. Deploy to Firebase Functions & Hosting

    firebase deploy

(back to top)

Usage

Primary functions available in app

Roadmap

  • Add Changelog
  • Add Contact Page
  • Add In App Messaging
  • Improve Visualizations
  • Add Authentication
  • Add Menu

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/Amazing Feature)
  3. Commit your Changes (git commit -m 'Add some Amazing Feature')
  4. Push to the Branch (git push origin feature/Amazing Feature)
  5. Open a Pull Request to Main

License

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

(back to top)

Contacts

Project Link: https://github.com/apsistec/dw-portfolio

Contributors

Apsistec

Douglas White

LinkedIn

Acknowledgments

(back to top)