makaleks / drec_stud_site Goto Github PK
View Code? Open in Web Editor NEWA web-site on Django (Python3), with VK auth., Yandex payment
Home Page: https://frtk.mipt.ru
A web-site on Django (Python3), with VK auth., Yandex payment
Home Page: https://frtk.mipt.ru
Today we don't cover in documentation how to setup SELinux, because we don't know that. But when hosting uses SELinux, we suffer from unloadable static files. SELinux proper setup is currently the only thing that is required to start up fully and independently when hosting reboots our server.
Our Russian-wide win at RedBull Basement University 2018 showed us, that it is possible to chill abroad. To support our chances of worldwide networking we may need to go further in project internationalizations and proxy all currently Russian strings through Django gettext practices.
Currently, users new courses are registered vie CLI, which is not good. The suggested solution is to refactor Service class to create subclass, providing tools for admins (is_staff).
In addition, the CLI registration toolchain from Excel should be refactored. The same code can be used by the GUI.
For now, backups are mare only via ssh. It is a problem.
One of the possible services is to generate documents online, based on some template, defined by admin. Such document will autofill first_name&last_name, so the only thing required before submit is a sign.
Currently, locks interact with site using simple GET calls. There is no validation, that the server is correct. The protocol of one-way authentication can be taken from X500 standard. In addition, the secure random generator can be implemented. Don`t forget to update the software of lock hosts!
Protocol example:
Currently, offline passwords (if Vk is disabled) can be set by ssh only. This must be changed to web-view, that is turned on from settings.py. The User Story:
Currently, the site lacks news content. The suggested solution is to load news from Vkontakte group, marked by some hashtag/hashtags.
During active development, it was possible to test frontend in browser without starting a web-server. As I remember, the system used AWK to paste some data, merge Django templates and remove Django tags. In addition, CSS is too large now, it should be replaced with more general language (for example, LESS, Sass) or rewritten using CSS '@import'.
Requirements:
The washing room has cameras and the requested feature is to make online-translation in the washing room. I have no idea how to work with that, but this is one of the most requested features from student council.
Our server runs in 4 instances (workers, processes), to it is possible to save the same order twice. We need to fix it. Suggested approaches:
OrderItemAbstract.get_queryset() contains lots of checks and we need to ensure all of them are done properly. This requires to use predefined database at predefined time. Python package freezegun is suggested to manipulate time.
Add cloud to make admins manage files on site and share them. This may be ready-made solution (recommended to find).
Sub-features:
Some logic can be duplicated at server- and client-side. The current examples are: validation (server-side is required for security & client-side disables idle requests) and bbcode rendering (client - WYSIWYG text editor, server - text rendering).
For now, social-auth sets up user only if the current one is not authenticated. If user was already authenticated (for example, via Django Admin), the User will now be changed. To login() a User, you need a Django "request" object. But socia-auth was made to be implementation-independent, so it does not have current Django "request" (couldn`t login() using via undocumented strategy.request). So, in Pipeline I lack "request" and outside pipeline I lack new User.
The idea is to force newly-authenticated User to login() from social-auth data, although he may be already authenticated. I can`t connect 2 arguments
For now, to create list of available time cells to order service, we have a lot of complicated logic inside Item methods. The suggestion is to create inside 'utils' module a class that will be able to work as list of intervals. It must be able to keep sorted lists of intervals like [[09:00, 17:00], [17:00, 01:00:00], [01:00:00, 09:00]]: add next interval without crossing and check possible interval in accurence.
If we do that, we will be able to set WorkingTime anyhow we want like "from 8 a.m. to 1 a.m." without worries and buggy logic.
For now, all WorkingTime should be between [0 a.m., 0 a.m.]
Now site runs on some servers and their updates require manual git pull
. Some kind of continuous integration (ci) should solve this.
But this should fit current scenarios
v1.0
is so slowly-developed that we use it instead of master.So I see now some kind of 'rush
-branch' with a server setting 'use rush
' vs 'use default branch' where 'default branch' is master
or some other
Currently, every survey is shown for everybody. But there are moments, when survey should be shown for concrete course, group or person. These can be implemented via tags, that refer to some value, that can be calculated from User (as example, course from group; next survey for everybody who passed the previous one; ...). Surveys must have a setting 'show_tags'.
Progressive Web Apps (PWA) is a standard for single-page applications (SPA), that can be run in user browser without Internet connection. These apps can save data locally and can be added on 'Home' screen in smartphones and some desktops, such as Gnome (Linux) The recommended tools are: Vue, Typescript.
Possible ideas for such offline web-apps:
Currently, refunding in case of a suddenly closed service item (for washing room the item is a washing machine) is done manually. The suggestion is to do refunding automatically, so no one is forgotten and no refundings are delayed. The idea is to refund when the order time on a closed service item occurs. This prevents orders canceling after N+1 day on service item, that will be opened on day N.
Warning: beware concurrent deleting from database, this issue requires solving #38 first.
Python code has several tools to generate documentation from source code. Some of them should be chosen and the project should be filled with comments, so the generated documentation:
The currenty-used CKEditor was choosen, because it supports BBCode (we don`t use raw HTML/CSS in user texts), but it is too hard to customize it to use other (custom) BBCodes, or integrate file uploading in Django. In this case, it should be either: replaces, improved, rewritten from stretch.
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.