Giter Club home page Giter Club logo

blog's Introduction

๐Ÿ‘‹ Welcome to my GitHub profile

  • ๐Ÿ”ญ Iโ€™m currently working on Ethereum ERC-20 tokens and Non-Fungible Tokens (NFTs)
  • ๐ŸŒฑ For web apps, I use React or Vue through the Laravel PHP framework
  • ๐Ÿ’ฐ Stacking BTC & ETH along with Alt Coins, NFTs & Shitcoins
  • ๐Ÿ’ธ Solidity Smart Contract Developer
  • ๐Ÿ“ซ How to reach me: [email protected]

blog's People

Contributors

chx2 avatar dimayefremov avatar drewroberts avatar evgeniyryz avatar gurgentil avatar huntermontell avatar joshtorres avatar kylebarney avatar pdbreen avatar phuclh avatar prestontoor avatar webtigers avatar wolfrednicolas avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

blog's Issues

Location-based Pages

There should be a location_based boolean field on pages (#15) that defaults to false. It will be utilized in the tipoff/locations package and not be utilized at all if the application does not have that package installed.

If the boolean is true, then the tipoff/locations package will handle the Layout change for the page at that slug and will add the slug to the correct Markets & Locations routing structure.

Layout Data Migration

The migration to add layouts to the database is not working. The migration is not inserting any data when I run the migrations in the tipoff/demo application.

Topics

Blog Posts (#5) should belong to a main Topic through Series (#4). Topics should have a cover Image (#1).

Make copyable field open link in new tab

As shown in #87:

Screen Shot 2021-04-21 at 11 11 46 PM

The copyable field should also display the url as a clickable hyperlink that opens in a new tab. While sixlive/nova-text-copy-field has been valuable in serving as a prebuilt component, it does not support the Nova Text field native method of asHtml(), which would normally make it possible to pass in HTML to trigger the hyperlinking of field content.

Started under a custom fork under https://github.com/chx2/nova-text-copy-field, I will need to implement a working asHTML() method for any packages that will intend to use the copyable text field.

Layout

There should be a model named Layout that is used in a somewhat similar concept to WordPress' page layouts:

The Layout should define a model like Page (#15) or Market (TIPOFF/locations#41) and then define a blade file. The model can then have a belongsTo relationship with Layout and there can be a default set by the package in the config file for each model of that package that will be included in web routes. That blade template can be published and updated in the application and other variations could also be created both in the package and in the application (example: AMP validated layouts). Each entry in that model can then use the default layout or define its own.

Post Routes

If a blog Post (#5) has a NULL Series (#4), then the path for it should be:

/blog/{post:slug}

If it has a Series relationship, then it should use the current routing in Issue #50 of:

/{topic}/{series}/{post}

The /blog route will use the Page with that slug in the data migration (#66) in the controller to display content on it.

Routes

I want the default routes to be added to this package with config options for adjusting based on the project. This will require controllers in the package and also view templates for each of the models.

Series

Posts (#5) are published as part of a Series that belong to a Topic (#3). Each of the Series should also have a cover Image (#1).

Pages

Pages should have a cover Image (#1) and be able to have a Parent Page. They can also feature a Video (#2).

I would also like to keep track of pageviews which are pulled from Google Analytics (#7).

Policies

Create authorization policies in package and register them in the service provider.

Layouts cannot be accessed within Nova

While it is possible to view the index of the Layout resources, when attempting to do any of the following:

  • View a specific layout
  • Edit a specific layout
  • Create a new layout

The following error is shown:

Screen Shot 2021-04-21 at 12 40 10 AM

Parent Page Redirect

There should be an option with Pages (#15) that allows a Page to redirect & route visitors through the Controller to the parent Page.

An example of a use case for this is with Pages that are created for Locations (TIPOFF/locations#42) where there is only 1 Location in a Market (TIPOFF/locations#41). In that case, I want to redirect the visitor to the parent Page (the Market page).

Page Data Migration

We will need the following Pages (#15) in a data migration for this package:

  • / (Homepage - not sure how to handle this one with routing)
  • /company (About Us Page)
  • /blog

Other packages will add their own Page data migrations.

Roles

This package should create the following Roles:

  • Editor
  • Writer

Config Path

Add various URL path structure options to config file.

Images

I like images to have their own Model and be implemented with Cloudinary

Tags

Tags are used as in WordPress and can be assigned to Posts (#5) in a Many to Many relationship.

YouTube API

YouTube's API should be used to pull new Videos (#2) and also get updated view counts and the featured Image (#1), description, and other data needed.

Fallback routes and route caching

This is a placeholder to check the behavior when an application contains fallback routes once the internal routing of this package is finalized.

Quick ideas for bahvior to review:

  • Are application fallback routes called when package is installed?
  • Can package routes leverage fallback routes in some way?
  • Can package routes be cached?
  • Does any of the above change with or without Nova installed?

Nova Layout Relationship

Could we limit the Nova Resource relationship to Layout (#60) to just show select options for those Layouts that have the same type as the current Nova Resource? For example, the Page (#15) resource should just show select options for Layouts that have the enum of Page:

Screen Shot 2021-04-16 at 11 42 42 AM

Error when creating new topics & series

When creating a new topic or series, while the resource seems to be created as intended, I receive the following error for both resources during the process corresponding to resource name:

Screen Shot 2021-04-21 at 12 09 39 AM

Screen Shot 2021-04-21 at 12 09 58 AM

Authorization Policies

This package will also provide the Laravel Authorization Policies needed for Blog Posts (#5) and each of the related models.

Videos

I like videos to have their own model and be automatically pulled from YouTube with their cover Image and description, etc.

Laravel Nova

This package will also provide the Laravel Nova resources needed for each of the Models.

Partial Page Routes

The Blog controller should accept routes for Pages (#15) that are parent Pages and have child Pages and grandchild Pages.

Google Analytics

I would like to use the Google Analytics API to pull the views of Blog Posts (#5) to have the total views of the Posts to display on the website.

Sites

This package is the first one in the set of packages and probably the only one that needs to implement Sites model and add ''site_id'' to every table to allow MultiSite usage of this package in projects. There should be a default site with a data migration of it to the database.

I need to also think through an implementation of allowing pages & the post models to be added to multiple sites or for simplicity sake to just disallow that. I can think of quite a few instances where I would want the same page of each of the websites in the project.

We'll allow the project to handle the MultiSite routing code and can do that later and provide the necessary steps in a ReadMe file but shouldn't overcomplicate the code in this package for the many single site projects that use it.

Posts

Blog Posts should belong to a Series (#4) and have a cover Image (#1). They can also feature a Video (#2). Through the Series, they also belong to a main Topic (#3).

I would also like to keep track of pageviews which are pulled from Google Analytics (#7).

Nova View & Copy Path Buttons

Similar to how WordPress handles "View" buttons on Posts, I would like for all of the resources in this package to have a "View" link in both the Nova Index and the Resource Show pages that is a simple ahref link to the path accessor of the resource. Here is a screenshot of what WordPress does:

Screen Shot 2021-04-17 at 9 46 38 AM

YouTube takes it further and does a "Copy" button for the path to the resource that would be great on the resource Show page with the "View" Button next to it and the path as in their example:

Screen Shot 2021-04-17 at 9 40 57 AM

Documentation

Need to update the ReadMe file to keep it current with package features and document how to best utilize it in a Laravel project.

Tests

Need to implement tests for every feature of the package.

Restricted Posts to Subscribers

This package will also have the option of restricted authorization for some blog Posts (#5). Primarily, they will be able to see an excerpt of the content and not be able to view Videos (#2) unless they are a subscriber.

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.