Code Monkey home page Code Monkey logo

blogit's Introduction

Hi there ๐Ÿ‘‹

My name is Dmitry.

At my free time I like to contribute Yii3.

Projects

Yii Dev Panel

Source: https://github.com/xepozz/yii-dev-panel

It's an aggregated application based on React that helps you to both develop and debug Yii3 application.

The project will contain several application's frontends for Gii, Debug and Inspector modules.

Test It!

Source: https://github.com/xepozz/test-it

A tool for generating files with tests cases based on class methods signatures.

Great way to start tests writing. It will help you to have an addiction to write tests without doing routine tasks such as creating files, writing methods and test cases.

Blogit

Source: http://github.com/xepozz/blogit

I wanted to start writing useful articles ๐Ÿ“ and that's why I had developed CMS based on Github Pages.

It's not maintained at the moment but you can develop your skills contibuting this project.

Maintained Yii3 modules

  • Unique ID - Allows you to track the unique user in the application.
  • Request ID - A simple library to generate both unique request and response IDs for tracing purposes.
  • AB - A simple library to enable A/B testing based on a set of rules.
  • Feature Flag - A simple library to enable/disable features based on a set of rules.
  • Shortcut - Sets of helper functions for rapid development of Yii 3 applications.

blogit's People

Contributors

xepozz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

blogit's Issues

"Cut" functionality

We need cut functionality that will show the first part of the post and hide the second part.

This is necessary so that people open posts and delve into them on a separated page, not on the page with the list of posts.

I think for the first time we can use just <hr> tag as a delimiter.
It's easy to implement and won't affect original look (in github issue)

Example

First part

***

Second part

What we will see on the page with the list of posts

First part

What we will see on the post's page

First part


Second part

Prepare documentation

  • How to use and configure the site
  • How to write posts
  • Code style rules
  • Make tests and other checks (using Github Actions)

Want to test

There is a long long description :)



















Too long.

Rate limit reached page

I early explain the main problem, see #11.

We need to handle this error with separated component that will contain:

  • Short description of the problem
  • Show existing ways to solve the problem:
    • Just wait N minutes (need to show remaining minutes)
    • Authorize with github token to raise the limits (see already completed authorization module)

Tech solution:

  1. Develop static page with short description (see above)
  2. Develop global event handler for rate limits error, that will redirect to error handling component

Garbage collector (GC)

Need to implement garbage collector for cached API requests.

Tech solution:

  1. Set GC call at interval every 5 minutes
  2. GC should check each stored value and remove expired

Vote functionality

Would be nice to have an ability to attach vote to a post.

I have an idea make vote based on emoji laugh, confused, heart, hooray, rocket, eyes

How to implement:
1.Whether or not a vote needs to be taken will be declared using comments.
2. The format of the comment will be as follows:

<!--
<vote>
{
{"emoji": "laugh", "label": "Option label 1"},
{"emoji": "confused", "label": "Option label 2"},
{"emoji": "heart", "label": "Option label 3"},
{"emoji": "hooray", "label": "Option label 4"},
{"emoji": "rocket", "label": "Option label 5"},
{"emoji": "eyes", "label": "Option label 6"}
}
</vote>
-->

This format is not available, because at now blogit uses already processed markdown format (completed html).
Also github markdown processor removes any comments or attributes.
3. After receiving the content of the post, comments should be removed from the view
4. The number of reactions can be obtained from a separate API method.
5. In the voting statistics, you need to display count of votes and the percentage

Artifacts:

Need to research this possibility.

Internalization

Need to implement internalisation with multiple languages.

Add tests

Need to cover each functionality with test.

Unit:

  • Tests for raw data => object transformation
    • Post
    • Comment
    • Reactions
    • Vote
  • Tests for caching mechanism

Acceptance:

  • Posts
    • Posts is loading
    • Single post is loading
    • Comments is loading
    • Likes/Dislikes is loading
  • Filtering
    • Filters by tag is working
  • Caching is working
  • Auth token can be stored

Likes system

Feature can be realized as in #5 using Issue Reactions as a counters of likes/dislikes

It happened! ๐ŸŽ†

โœŒ Hi there! โœŒ๏ธ It's my (@xepozz) first post ๐Ÿฅ‡

The blog is started.

At now posts may interpreter any markdown entities. We can see these in the next posts.

There is some highlighted snippets:

class User extends \UserInterface
{
    private int $id;
}
const result = [].push('one').push('two');
console.log(result);
ps -aux | grep init > /dev/null

Stay likes, do reposts, click on bells and all links will be in the description ๐Ÿ˜€

See ya!

The "cut" functionality

There is experiment for using "cut" functionality.

On main page post must not be showed fully.
On main page you should see post before horizontal delimiter.


On view page you can see all of the post.
If you texts as described above then "cut" functionality works.

Make site interactive

Would be nice to have an ability write comments and other actions directly on the site.
I see this action plan:

  1. Blog should have an possibility to auth an user over github (at now it's available only with usage Secret token)
  2. Need to develop the comment form
  3. Need to develop preview functionality for comments

Hello World!

There is my first post on Blogit system

I'm very happy ๐Ÿ˜ธ

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.