⚡ RESTful Pastebin Service for @hashnode via @planetscale

Related tags

Admin Panels pasteme
Overview

> PasteMe

A RESTful pastebin service made for @hashnode purposes powered by the @PlanetScale MySQL database. There is a minimal UI interface designed with the Bootstrap framework to show the information but the focuse is on the RESTful service where you can access the services through the APIs.

Technologies & Services

  • Frameworks and Tools
    • Django + DRF
    • Bootstrap
  • Infrastructures & Hosting Services
    • PythonAnyWhere
    • PlanetScale

Setup & Installation

Will be updated..

Linux Package

Will be updated..

License

PasteMe is being licensed under the MIT License.

Special Thanks to

Comments
  • UPDATE: Navbar and Loading Screen

    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.
    enhancement front-end 
    opened by Farhaduneci 5
  • Feature Request: Implement expiry feature for pastes (snippets)

    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.
    enhancement 
    opened by lnxpy 3
  • Feature Request: Make the navbar toggle (hamburgur) animative!

    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.

    enhancement 
    opened by lnxpy 3
  • Having a Blog

    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.

    opened by Farhaduneci 2
  • Feature Request [Developement ]: No issue and PR template in github repository

    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

    documentation enhancement 
    opened by SiddheshKukade 2
  • FIX: Navbar fixed position on scroll

    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
    bug front-end 
    opened by Farhaduneci 1
  • Bug fixes to TailWindCSS integration (Dev. branch)

    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:

    bug enhancement front-end 
    opened by Farhaduneci 1
  • ADD: [Feature] paste expiry

    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.

    opened by Farhaduneci 1
  • ADD: Code Comments, UPDATE: Modal state saved on local storage

    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.

    enhancement back-end 
    opened by Farhaduneci 0
  • Modal Features

    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.

    front-end back-end new feature 
    opened by Farhaduneci 0
  • Bump django from 4.0.6 to 4.0.7

    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.

    dependencies 
    opened by dependabot[bot] 2
  • Adding total number of pastes to home

    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).

    enhancement front-end 
    opened by Farhaduneci 1
  • General Recommendations

    General Recommendations

    Hey Sadra, I wish you doing well, thank you for this great project, PasteMe has become one of my favorite online tools for sure.

    I've viewed the project codebase and like to share my opinions on a couple of things that caught my :eyes:, so we share ideas about them here. I hope these make everything a little better and make the project to move forward.

    None of my recommindations would have any affects on the core website functionality, they are more related to back-end enhancments and visual aspects of the project.

    1. Snippet UUID Alphabet,

    You have used 12 characters abcdefg12345 as ShortUUIDField in Snippet model file, here is the code. https://github.com/collove/pasteme/blob/4916a92ca8135b79e54ff5a4463e8fbe8254e2c1/snippet/models.py#L8-L13

    These characters will make $12^5$ unique combinations based on your desired 5 char length UUIDs, that will have the capacity to produce $28K$ pastes in the application. I believe that's not a huge number for a pastebin service, I think this can simply be solved by using the built-in string module character groups and extending the alphabet to English letters and digits!

    from string import ascii_letters, digits
    alphabet = ascii_letters + digits
    

    This way, the system will be able to create $62^5$ UUIDs (pastes), which is $\approx 916M$ possibilities.

    This number can be shrinked by using smaller, but big-enouph, character groups like ascii_lowercase or ascii_uppercase. They will support $\approx 11M$ UUIDs.

    I've done this in my :fork_and_knife:, would be happy to open a PR if you're intrested.

    2. Using Code Formatters,

    After cloning the codebase on my machine, I've noticed that every file I visit is marked as edited via Git! It happens because of the Final new line that my code editor appends to each file, There are also Not Trimmed Trailing White spaces in the code and some random Extra new lines.

    https://github.com/collove/pasteme/blob/4916a92ca8135b79e54ff5a4463e8fbe8254e2c1/snippet/views/template.py#L7-L21

    All together, they make the codebase a little dirty and might make the pycodestyle and even some people :unamused: about formatting.

    I recommend using the “Black Formatter” in the project!

    By using Black, you agree to cede control over minutiae of hand-formatting. In return, Black gives you speed, determinism, and freedom from :unamused: faces. You will save time and mental energy for more important matters.

    Black makes code review faster by producing the smallest diffs possible. Blackened code looks the same regardless of the project you’re reading. Formatting becomes transparent after a while, and you can focus on the content instead.

    This can be achieved by using black locally as formatter on save, and checking the code style by GitHub Actions integration on every push to make sure everything is OK.

    I've created an action file that does the job in my :fork_and_knife:, would be happy to open a PR if you're intrested.

    3. The Footer,

    IDK why, but I believe all footers need to be sticky, They are called footers anyway :laughing:. This made me to feel out of comfort-zone and I think it's better that the footer be sticky, So it stocks down there now.

    Before:

    image

    After:

    image

    I've made the footer sticky in my :fork_and_knife:, would be happy to open a PR if you're intrested.

    4. Endpoints Rate Limit,

    Pastebin websites are usually tasty :cake: for new hackers, I'm not a security specialist, but rate-limiting end-points are always a good practice. Django Ratelimit is a rate-limiting decorator for Django views, storing rate data in the configured Django cache backend. I recommend using this package in the project.

    bug documentation enhancement good first issue 
    opened by Farhaduneci 2
Releases(v2.0.0)
  • v2.0.0(Aug 23, 2022)

    The Great Reveal (TaildwindCSS Integration) 🍻 🎉

    We are so glad to announce this awesome release with @Farhaduneci. We got so many improvements and features for you. Here is a quick preview as a demonstration of the works throughout this integration contributions.

    There is also a discussion opened for this specific release. Let us know your feedback. Follow the word here.

    Preview

    Artboard 1

    What's Changed

    • Blog Section Added by @lnxpy in https://github.com/collove/pasteme/pull/58
    • Expiry Feature by @lnxpy in https://github.com/collove/pasteme/pull/62
    • Development merge for the new release 1.2.0 by @lnxpy in https://github.com/collove/pasteme/pull/85
    • Front-end refactor (Tailwind Integration) feature by @lnxpy in https://github.com/collove/pasteme/pull/87
    • Download URL is moved to constants by @lnxpy in https://github.com/collove/pasteme/pull/88
    • Bug fixes to TailWindCSS integration (Dev. branch) by @Farhaduneci in https://github.com/collove/pasteme/pull/89
    • Tailwind Integration (new version 2.0.0) by @lnxpy in https://github.com/collove/pasteme/pull/90

    Full Changelog: https://github.com/collove/pasteme/compare/v1.2.0...v2.0.0

    Special thanks to @Farhaduneci 🍻 🎉

    Source code(tar.gz)
    Source code(zip)
  • v1.2.0(Aug 19, 2022)

    • Blog Section Added fixes #55 by @lnxpy in https://github.com/collove/pasteme/pull/57
    • ADD: [Feature] paste expiry by @Farhaduneci in https://github.com/collove/pasteme/pull/61
    • PyPI Management Commands Optimized + Minor Changes by @lnxpy in https://github.com/collove/pasteme/pull/71
    • Improvement/db engine optimization fixes #79 by @lnxpy in https://github.com/collove/pasteme/pull/80
    • flake repo changed from gitlab to github in pre-commit configs by @lnxpy in https://github.com/collove/pasteme/pull/81
    • featured flag added for blogs by @lnxpy in https://github.com/collove/pasteme/pull/84

    Full Changelog: https://github.com/collove/pasteme/compare/v1.1.2...v1.2.0

    Source code(tar.gz)
    Source code(zip)
Owner
Collove
Where People Collaborate with Love!
Collove
Paaster is a secure by default end to end encrypted pastebin built with the objective of simplicity.

Follow the development of our desktop client here Paaster Paaster is a secure by default end to end encrypted pastebin built with the objective of sim

Ward 203 Sep 17, 2022
Report and block camera service/microphone service/location service quickly.

Emergency-Brakes Report and block camera service/microphone service/location service quickly. Emergency-Brakes can detect whether the camera service /

liang4793 16 Jul 31, 2022
A distributed denial-of-service (DDoS) attack is a malicious attempt to disrupt the normal traffic of a targeted server, service or network by overwhelming the target or its surrounding infrastructure with a flood of Internet traffic.

A distributed denial-of-service (DDoS) attack is a malicious attempt to disrupt the normal traffic of a targeted server, service or network by overwhelming the target or its surrounding infrastructure with a flood of Internet traffic.

Sardar 3 Jun 9, 2022
An interactions.py extension that exposes your bot's internals to a RESTful API

interactions-rest An interactions.py extension that exposes your bot's internals to a RESTful API Still a WIP And why would I need this? Maybe you've

Ventus 1 Jun 15, 2022
This is a project given to me by udacity. The aim is to deploy a simple Restful application to AWS and Kubernetes.

Deploying a Flask API This is the project starter repo for the course Server Deployment, Containerization, and Testing. In this project you will conta

Iniabasi Sebastian Etim 1 Jul 27, 2022
Prometheus Service Discovery for Tailscale (Python Edition)

TailscaleSD - Prometheus Service Discovery for Tailscale (Python) Serves Prometheus HTTP Service Discovery for devices on a Tailscale Tailnet. This is

byt3bl33d3r 20 Sep 16, 2022
Something something Python, Docker, Web Service, API, Linux, Ubuntu

Free-ish Stock API Description Python web service to retrieve stock information with Python using YFiance and CherryPy. Just for fun and because I Goo

Lam Phan 1 Apr 4, 2022
Service Unit tracking for SLURM, python3 - based upon slurm_bank

slurm_su_bank_python3 UNDER DEVELOPMENT!!! USE AT OWN RISK A Banking/Resource Allocation (Service Unit) tracking system for the SLURM job scheduler ba

David Simpson 1 Apr 8, 2022
Optional service for the TubeArchivist project to export metrics for users who run prometheus/grafana

Tube Archivist Metrics Provide Tube Archivist metrics in Prometheus/OpenMetrics format This is an optional service as part of the Tube Archivist stack

Tube Archivist 1 Apr 15, 2022
CI service to Patch recovery to enable fastbootd on recovery image of Samsung devices launched with Android 10 and above.

Patch-Recovery This CI service patches recovery images of Samsung to enable Fastbootd. Based on Phh's script How to use: Fork this repo. Upload your r

Johann 19 Sep 19, 2022
How to preventive your contracts from being a victim of denial of service.

How To Prevent Denial Of Service By Refusing To Accept Ether Inside our contract folder we have three contracts the KingOfEther, Attack and FixedKingO

Francis Egboluche 3 Apr 18, 2022
TikTok LIVE library to connect to TikTok's internal WebCast service

TikTokLive A python library to connect to and read events from TikTok's LIVE service A python library to receive and decode livestream events such as

Isaac Kogan 218 Sep 20, 2022
Low Bandwidth Distributed Denial-of-service attack ToolKit.

Warlof Low Bandwidth Distributed Denial-of-service attack ToolKit. Warlof is a Low Bandwidth Distributed Denial-of-service attack (DDoS) Toolkit. You

Md. Nur habib 1 May 3, 2022
Python package for accessing 4intelligence's Forecast as a Service (FaaS4i)

PyFaaS4i - FaaS API modeling with Python Repository for running scale modeling on FaaS from Python Repository under license Mozilla Public Version 2.0

4intelligence 9 May 24, 2022
Code of my thesis project for the Master in Data Science and Business Analytics at Bocconi University. The project consists in a combination of NLP and CV to determine food prices on a popular food delivery service.

Food Pricing with NLP and CV Introduction This repository contains the code written for Giacomo Rebecchi's thesis for the Master in Data Science and B

Giacomo Rebecchi 2 May 8, 2022
This script will download the Tesla Service Manual onto a local doc folder for offline access.

Tesla Service Manual Scraper This script will download the Tesla Service Manual onto a local doc folder for offline access. This is geared for Windows

null 47 Aug 26, 2022
Use PyBomber To get Call Bombing, SMS Bombing, Email Bombing Service

PyBomber v1.0.2 A free and open-source SMS/Call bombing application NOTE: Due to the overuse of script, a bunch of APIs have been taken offline. It is

Ankan Saha 1 May 27, 2022
A python module for messaging through the free dweet service.

dweeter Documentation A python module for messaging through the free dweet service. Dweet is a simple machine-to-machine (M2M) service from dweet.io.

Quan Lin 1 May 30, 2022