General Recommendations #27
Labels
bug
Something isn't working
documentation
Improvements or additions to documentation
enhancement
New feature or request
good first issue
Good for newcomers
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 👀, so we share ideas about them here. I hope these make everything a little better and make the project to move forward.
1. Snippet UUID Alphabet,
You have used 12 characters
abcdefg12345
asShortUUIDField
inSnippet
model file, here is the code.pasteme/snippet/models.py
Lines 8 to 13 in 4916a92
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!This way, the system will be able to create$62^5$ UUIDs (pastes), which is $\approx 916M$ possibilities.
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.
pasteme/snippet/views/template.py
Lines 7 to 21 in 4916a92
All together, they make the codebase a little dirty and might make the
pycodestyle
and even some people 😒 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 😒 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.3. The Footer,
IDK why, but I believe all footers need to be sticky, They are called footers anyway 😆. 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:
After:
4. Endpoints Rate Limit,
Pastebin
websites are usually tasty 🍰 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.The text was updated successfully, but these errors were encountered: