In this addition i added more manuality to basic functions and huge amount of small fixes that enabled me to add new things. Some small updates:
ESC
Image Viewer
Toady I added two main thing and first is the taskbar update - was added decorative icon and time in right side (hh:mm:ss and dd:mm:yyyy)
Also I added install command that shows animation of installation as well as changes in dictionary that package was installed. For now it doesnt work - system feels as everything preinstalled but next thing to do is to add restrictions to system usage without proper installations.
Today I added lock screen where you choose your username and whether you want to use this system in manual mode. Also I added command neofetch to show ManualOS logo in console.
You can try current version using this link:
https://robertsrob.github.io/Manual_OS/
Now that is the projects main part - terminal installs - manual part. User will have to install packages to do something - open apps, close apps, minimize apps - super MANUAL, so disk is not flooded with unnecessary packages.
Today I added terminal and help command, with plans to expand amount of commands. Interesting part of implementation was color setup - I made terminal structure rework from initial idea. With this console structure I can easily write new colors to show in terminal. There is also easter egg)).
Whats next:
ManualityP.S. Manu testers may be fooled, but you can actually open multiple windows of the same app, as much as you want, just like in Linux or any other OS.
Now taskbar is not a decoration it is a functinable piece of software. You can choose app to open, choose whats app is on top of other and minimizing works. If you minimize app now pressing in the taskbar you can bring it back! Now thats pretty cool HUH? 😅 Also I added Notepad where you can write something, no functionaluty for now only textarea but looks goood.
Also used backdrop-filter: blur(25px) to blur backgrounds, looks good to me.
I added so when you double click on icon the window with app opens. Also browser was added. It is not google, funny thing google simply doesnt work in iframe. Also these windows are draggable from left side.
You can write a url and press Enter, then site will be loaded. In exaples can be seen Wikipedia and my other project - Authentication template )
If you want to try current version you can visit this link: https://robertsrob.github.io/Manual_OS/
The idea is to make Web OS where nothing is installed and you have to install everything manually. There will be two options to use complete instalation or do manualy. Right now i am building main part then to split it and make users to install by parts everything (instalation is only in UI)
Minor bug fix
Fixed some bugs when signing up and pytest bug fix. Wat throwing 500 Internal server error because errors were not handled.
Rate limiting and documentation
So now BOTS and other spammers cannot enlessly access enpoints and have limits. If you hit one you will be send to stop page, where Arnold would manage you. For all routes is implemented this restriction:
default_limits=["200 per day", "50 per hour"]
And for popular routes that can get under attack like /signup or /login there are more scrict limits.
Admin page and username availability check
Long time no see) So I added username availability check every 1500 ms, and admin page, where admin can view users and delete them. Frontend should be improved bc it doesnt utilize /admin/view_users full potential, but it is good for now. Also as you can see i added roles, so now you can have admin or user role, where admin role users have access to this page.
Added enspoints:
GET /api/users/check -> Check if a username exists
GET /admin -> Admin dashboard
GET /admin/view_users -> List users (by page)
DELETE /delete_user/<id> -> Delete a user
Today I wrote Forgot password route
Now users can reset their password through email link:
Today I added a way to update password and email for non OAuth 2.0 users
Today were fixed multiple bugs, improved password validity checking and added a way to change password and email. (image shows what error codes you can get while updating your email)
Other small updates:
Authentication system demo video
Project progress at this moment, written in hronological order
Day 1-2 (image 1)
Day 3 (image 2)
Day 4-5 (no image)
Day 6-7 damn numbers (image 3)
Day 8 (image 4)
There is a lot to add next step is to implement CRUD operations
Information about this project
I started this project a couple weeks ago (Jul 4th) as an idea to create a fast, ready to go authentication system bassically for any project with advanced features. Unfortunately i didnt started posting in stardance when i started and I did not have Hackatime time tracking. Luckily I used git in this project and in couple next posts I will post progress that I made. I will post by chunks with significant moments. From now on I will track time and post oftenly 😁
(image shows current version of sign up page)