⚡ RESTful Pastebin Service for @hashnode via @planetscale

  • By Collove
  • Last update: Dec 9, 2022
  • Comments: 14

PasteMe - RESTful Pastebin Service


🍀 : Check out PasteMe Live!

📰 : Read the article describing the development and deployment steps behind this service on Hashnode.

⚙️ : PasteMe uses django-psdb-engine for the PlanetScale integration.

A RESTful pastebin service made for @hashnode purposes powered by the @PlanetScale MySQL DBaaS. Two key tech stacks (frameworks) behind thie project are TailwindCSS and DRF.

Usage

Use the pasteme-cli package and start pasting. Once you paste your content, you'll be able to share it with others.

$ pip install -U pasteme-cli
...
$ pasteme --help

Tech Stack

Contributing

Follow up the steps in order to make PasteMe ready on your machine and start developing. All your contributions are welcome. 🍻 ♥️

License

PasteMe is being licensed under the MIT License.

Special Thanks to

Github

https://github.com/collove/pasteme

Comments(14)

  • 1

    UPDATE: Navbar and Loading Screen

    • Navbar positioning enhanced and looks smooth now, it also were not fixed on other pages than home, which is fixed now.
    • Loading screen animation is also updated and has PasteMe text on it now.
  • 2

    Bump django from 4.0.6 to 4.0.7

    Bumps django from 4.0.6 to 4.0.7.

    Commits
    • e9e9729 [4.0.x] Bumped version for 4.0.7 release.
    • b7d9529 [4.0.x] Fixed CVE-2022-36359 -- Escaped filename in Content-Disposition header.
    • 2eb7ded [4.0.x] Adjusted version 4.0.7 release notes.
    • baeffe8 [4.0.x] Ignored 080359c4c5242ef69ac8c58c92f240e71121ffd7 formatting changes i...
    • 080359c [4.0.x] Fixed warnings per flake8 5.0.0.
    • 1a9f079 [4.0.x] Fixed collation tests on MySQL 8.0.30+.
    • b8b449f [4.0.x] Adjusted release notes for 4.0.7 and 3.2.15.
    • 2c2b748 [4.0.x] Added release date and stub release notes for 4.0.7 and 3.2.15 releases.
    • f78b18f [4.0.x] Fixed #33820 -- Doc'd "true"/"false"/"null" caveat for JSONField key ...
    • 48501c8 [4.0.x] Fixed RelatedGeoModelTest.test08_defer_only() on MySQL 8+ with MyISAM...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

  • 3

    Feature Request: Implement expiry feature for pastes (snippets)

    A new field for Snippet model to set an expiration time. (e.g. one week, one month, one year,..)

    • A management command that runs once every day and removes all the expired snippets.
  • 4

    Feature Request: Make the navbar toggle (hamburgur) animative!

    Change the native Bootstrap navbar toggle to an animative element in the mobile platform! Once you clicked the button, it changes its shape X mark for example.

  • 5

    Having a Blog

    Having a blog related to project updates and code-snippets related conversations would be a :fire: feature, I recommend planning for this phase after :heavy_check_mark: other more important issues.

  • 6

    Feature Request [Developement ]: No issue and PR template in github repository

    Problem : Currently there is not any issue and Pull Request templates available in the repository. Due to that we can't get a clear details about the new issues posted or it just takes too much time to organize the details about an issue

    Solution:

    • We can add a issue template in the .github/ISSUE_TEMPLATE/ folder and .github/PULL_REQUEST_TEMPLATE/
    • This article explains benefits of Issues and Pull Request templates

    You can assign this issue to me @SiddheshKukade

  • 7

    FIX: Navbar fixed position on scroll

    Navbar position needs to change relative to the page scroll, this happens via JS adding various CSS classes to the hero and navbar elements. Some CSS classes were making a glitch-like effect while scrolling the page, which is fixed now.

    Actions Taken

    • Navbar position fixed
    • Created at changed to Created on in snippets template
    • Pre-commit ran locally
  • 8

    Bug fixes to TailWindCSS integration (Dev. branch)

    This pull request makes navbar sticky, loads fonts locally, fixes update contributors command, adds meta tags to blogs template and enhances JS usage in different templates, hope it :rocket:

  • 9

    ADD: [Feature] paste expiry

    Hey Sadra! I've added a new field called expires_in to the Snippet model, which represents expiry days! This PR also includes snippet template badges and everything needed for #48 to be resolved.

    Ex: if a models has expires_in value of 7 it means it will be expired in 7 days.

  • 10

    ADD: Code Comments, UPDATE: Modal state saved on local storage

    Modals 'closed' state were being saved in session storage, which made the modal to be shown every time a user closes the browser tab. Now it's being saved in local storage.

  • 11

    Modal Features

    Now we can show users Modal windows, modals can have:

    • Icon
    • Expiry time
    • Link to external resource

    Last added modal will be shown to the users, modals may be dismissed by pressing the X button, pressing that button will hide the modal in that session.

    Newly added modals will be shown to all users and need to be dissmised again.

  • 12

    Bump certifi from 2022.6.15 to 2022.12.7

    Bumps certifi from 2022.6.15 to 2022.12.7.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

  • 13

    Bump django from 4.0.6 to 4.0.8

    Bumps django from 4.0.6 to 4.0.8.

    Commits
    • 7d5cb49 [4.0.x] Bumped version for 4.0.8 release.
    • 23f0093 [4.0.x] Fixed CVE-2022-41323 -- Prevented locales being interpreted as regula...
    • 4a30e0d [4.0.x] Set date and added stub notes for 4.0.8 and 3.2.16 releases.
    • 898f0aa [4.0.x] Added CVE-2022-36359 to security archive.
    • 60e6bae [4.0.x] Post-release version bump.
    • e9e9729 [4.0.x] Bumped version for 4.0.7 release.
    • b7d9529 [4.0.x] Fixed CVE-2022-36359 -- Escaped filename in Content-Disposition header.
    • 2eb7ded [4.0.x] Adjusted version 4.0.7 release notes.
    • baeffe8 [4.0.x] Ignored 080359c4c5242ef69ac8c58c92f240e71121ffd7 formatting changes i...
    • 080359c [4.0.x] Fixed warnings per flake8 5.0.0.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

  • 14

    Adding total number of pastes to home

    It would be cool showing total number of pastes created on the website right after all other stats in the home page.

    I recommend adding a new field to Statistic model and incrementing it on each new submission (or via the cronjob, among other statistics updates).