emranprojects / sahabee Goto Github PK
View Code? Open in Web Editor NEWLet the good times roll!
Home Page: https://sahabee.ir
License: GNU General Public License v3.0
Let the good times roll!
Home Page: https://sahabee.ir
License: GNU General Public License v3.0
For current users, it's vital to be able to connect their current SahaBee account to their Google account, so can take the benefits of the future Google OAuth login feature.
For this reason, these features are needed, in order:
It's needed to connect SahaBee to Sentry for error tracking.
Preferably for both backend and frontend.
The ability to edit a rollout record in the dashboard.
Currently, the pulled images on deployments remain in the production server forever.
There should be a corn job to clean docker cache (i.e. docker system prune -a
) periodically.
When logged in, all navbar links place on top of each other, when the width of the screen is small. Hence they slip out of the navbar.
Currently, SahaBee is using an SQLite database, which is better to be replaced with PostgreSQL.
UserDetail
should contain also the manager's email address. (Backend)There is a celery task that emails timesheets periodically. Currently, it fails due to the change to the mail server authentication system. It may or may not be fixed by replacing the new credentials.
The error log:
[2022-01-11 23:00:01,811: ERROR/ForkPoolWorker-2] Task TASK_SEND_ACTIVE_TIMESHEETS[3e6e4745-c225-432b-93bc-3e9b0c6e2e93] raised unexpected: SMTPAuthenticationError(535, b'5.7.8 Error: authentication fail
ed: authentication failure')
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/celery/app/trace.py", line 451, in trace_task
R = retval = fun(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/celery/app/trace.py", line 734, in __protected_call__
return self.run(*args, **kwargs)
File "/sahabee/rollcall/tasks.py", line 32, in send_active_timesheets
_send_user_timesheet(user)
File "/sahabee/rollcall/tasks.py", line 72, in _send_user_timesheet
message.send()
File "/usr/local/lib/python3.8/site-packages/django/core/mail/message.py", line 284, in send
return self.get_connection(fail_silently).send_messages([self])
File "/usr/local/lib/python3.8/site-packages/django/core/mail/backends/smtp.py", line 102, in send_messages
new_conn_created = self.open()
File "/usr/local/lib/python3.8/site-packages/django/core/mail/backends/smtp.py", line 69, in open
self.connection.login(self.username, self.password)
File "/usr/local/lib/python3.8/smtplib.py", line 734, in login
raise last_exception
File "/usr/local/lib/python3.8/smtplib.py", line 723, in login
(code, resp) = self.auth(
File "/usr/local/lib/python3.8/smtplib.py", line 646, in auth
raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (535, b'5.7.8 Error: authentication failed: authentication failure')
Currently, users API is open to all authenticated users. But each user should be able to see himself through the API.
The API doc is currently available at https://api.sahabee.ir/docs/. It just needs a change on the current API link (at the UI top navbar) to point to this that instead.
Users should be able to see and edit their details (described by backend model UserDetail
).
Currently, when submitting a form (e.g. login) the error details text is toasted rawly.
It's better to show them near the corresponding error-faced fields.
There is no need for the user to be able to deal with user details.
The UserDetailViewSet
and corresponding codes, should be removed.
In the dashboard, it's better to determine what the rollcall button is supposed to emit: An enter event or an exit?
Note that it's just a UI/UX facility since there is no difference between Rollout
objects at the backend.
Currently, the whole rollouts are returned when retrieved by the API. It's better to fetch them month by month as the user selects.
Currently, Shecan DNS is set temporarily during infra setup. But it's gonna be needed for future Google API calls. (e.g. Google OAuth validation)
Hence it needs to be set permanently.
This link may help for how to do so.
During the test run of the restore procedure, it failed to restore this backup on production.
So I manually destroyed the production data and restored a modified* version of the backup.
*By modification, I mean removing the problematic UserDetail
from the backup file.
It didn't get reproduced locally but was reproducing at production, even with a clean database.
In the dashboard, users should be able to determine the time of roll call.
Currently, it's only a single button to rollcall with the current time.
It's already implemented at the API level to send the time for rollcalling.
Currently, the timesheet format doesn't let more than 6 rollouts. It should be validated at the backend not to save more than 6 rollouts in a single day.
The current restore procedure contains two steps:
So, if step 2 is failed, we face an empty database!
It's important to back up the last DB file (i.e. db.sqlite
) and replace it back to the position if the restore procedure failed for any reason.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.