- "Project - News Portal" - The project is a thesis.
- Creating news categories.
- Create new articles or news of your choice.
- Editing, as well as deleting news or articles.
- Implementing a News Category Subscription.
- Implementation of likes and dislikes of posts.
- Implementing Search with Filters.
- Implementation of a system for sending messages to e-mail (notification of a new article or news in a selected category).
- Weekly newsletter of the news portal.
- Implementing user registration, authentication, and authorization (as well as authorization through google).
- Implementation of automatic adding users to categories (regular category and privileged).
- Сaching templates and sections of the site.
- Implementation of error logging and other data.
- Added localization and internationalization.
- Added light and dark themes.
- Adaptation to REST architecture.
- Thesis for several months of learning django.
- Using HTML templates and CSS styles.
- Python 3.8.10
- Django 4.2
- APScheduler 3.10.1
- Celery 5.2.7
- Django-allauth 0.54.0
- Django-filter 23.1
- Python-decouple 3.8
- Redis 4.5.4
- Requests 2.28.2
- Installed google fonts
- Pytz 2023.3
- Logging
- REST framework 3.14.0
- REST Simple-jwt 5.2.2
- Djoser 2.2.0
- Folder name: news_portal
- On the repository page сlick the
Code
button in the top right corner. A menu will pop up in which you need to selectDownload ZIP
. - Save and extract the folder to any convenient location.
Rank | Languages |
---|---|
1 | Python |
2 | CSS |
3 | HTML |
- "Project - Wedding salon" - Personal project for business.
- Possibility to create categories of dresses or accessories.
- Possibility to add, edit and delete models of dresses or accessories.
- The ability to search for models of dresses by filters.
- Possibility to write a product review.
- The ability to like or dislike the model you like.
- The ability to share the model of a dress or accessory using social networks.
- Ability to register, authenticate and authorize a user.
- Ability to add multiple photos to models.
- Implemented pagination.
- Implementation of logging.
- Implementation of caching.
- Adaptation to REST architecture.
- Personal project for business.
- Using HTML templates and CSS styles.
- Python 3.8.10
- Django 4.2
- Django-allauth 0.54.0
- Django-filter 23.1
- Python-decouple 3.8
- Requests 2.28.2
- Installed google fonts
- Logging
- REST framework 3.14.0
- Folder name: wedding_salon
- On the repository page сlick the
Code
button in the top right corner. A menu will pop up in which you need to selectDownload ZIP
. - Save and extract the folder to any convenient location.
Rank | Languages |
---|---|
1 | Python |
2 | CSS |
3 | HTML |
- "Project - Bulletin board" - The final project in the school of learning.
- Ability to create ads by category.
- Ability to edit, delete and comment on ads.
- Ability to search ads by filters.
- With the help of the WYSIWYG editor, additional features have been added (editing text, choosing a color, font, as well as adding and editing photos) when creating or editing an ad.
- Ability to register, authenticate and authorize the user.
- Ability to manage through the user's personal account.
- Implemented pagination.
- Sending Email Notifications with Celery.
- The final project in the school of learning.
- Using HTML templates and CSS styles.
- Python 3.8.10
- Django 4.2
- Celery 5.2.7
- Django-allauth 0.54.0
- Django-filter 23.1
- Python-decouple 3.8
- Requests 2.28.2
- Installed google fonts
- Django-ckeditor 6.6.1
- Folder name: bulletin_board
- On the repository page сlick the
Code
button in the top right corner. A menu will pop up in which you need to selectDownload ZIP
. - Save and extract the folder to any convenient location.
Rank | Languages |
---|---|
1 | Python |
2 | CSS |
3 | HTML |
Our company received an order from the Federation of Sports Tourism of Russia (FSTR). FSTR is an organization that develops and popularizes sports tourism in Russia and manages the holding of all-Russian competitions in this sport.
On the site https://pereval.online/, the FSTR maintains a database of mountain passes, which is replenished by tourists. After overcoming the next pass, the tourist fills out a report in PDF format and sends it to the e-mail of the federation. The FSTR expert group receives this information, verifies it, and then enters it into the database, which is maintained in a Google spreadsheet.
The whole process is very inconvenient and long and takes an average of 3 to 6 months. FSTR commissioned students to develop a mobile application for Android and IOS that would make it easier for tourists to send data about the pass and reduce the request processing time to three days.
Tourists will use the mobile application. In the mountains, they will enter the pass data into the application and send it to the FSTR as soon as Internet access becomes available. The moderator from the federation will verify and enter the information received from users into the database, and they, in turn, will be able to see the moderation status in the mobile application and view the database with objects contributed by others.
- Entering information about a new object (pass) into the object card.
- Editing in the application of data about objects not sent to the FSTR server. The Internet does not always work at the pass.
- Filling in the full name and contact details (phone and e-mail) with their subsequent autocompletion when entering data about new objects.
- Sending data to the FSTR server.
- Receive notification of the status of the submission (success/failure).
- The user's consent to the personal data processing policy in case of clicking on the "Send" button when sending data to the server.
The user, using the mobile application, will transfer the following data about the pass to the FSTR:
- coordinates of the pass and its height
- Username
- mail and phone number of the user
- the name of the pass
- some photos of the pass
Returns data as a list of JSON records1.
1 - Mandatory fields for creating a post: first_name, last_name, patronymic, email, phone.
-
URL
/api/v1/submitData/
-
Method:
POST /submitData/
- creating a record using the POST method.
GET /submitData/
- getting record via GET method.
GET /submitData/?user__email=<email>
- a list of data about all objects that the user with mail sent to the server. -
URL Params
None
-
Data Params
"user": { "first_name": "", "last_name": "", "patronymic": "", "email": "", "phone": "" }
-
Success Response:
-
Code: 201 CREATED { message : "Запись успешно создана." }
Content:Префикс: "" Название: "" Другое название: "" Соединяет: "" Статус данных: "new" Категория трудности: "winter-1A" Широта: "" Долгота: "" Высота: "" Имя: "Василий" Фамилия: "Васильев" Отчество: "Васильевич" Электронная почта: "vasyl60@example.com" Телефон: "+70123456789" Название фото 1: "" URL изображения 1: "" Название фото 2: "" URL изображения 2: "" Название фото 3: "" URL изображения 3: ""
-
-
Error Response:
- Code: 400 BAD REQUEST
Content:{ error : "Это поле не может быть пустым." }
- Code: 400 BAD REQUEST
-
Sample Call:
{ "id": 1, "beauty_title": "", "title": "", "other_titles": "", "connect": "", "add_time": "2023-07-19T12:06:44.305663+03:00", "status": "new", "level": "winter-1A", "coordinates": { "id": 1, "latitude": null, "longitude": null, "height": null }, "user": { "id": 1, "first_name": "Василий", "last_name": "Васильев", "patronymic": "Васильевич", "email": "vasyl60@example.com", "phone": "+70123456789" }, "images": { "title_1": "", "image_1": "", "title_2": "", "image_2": "", "title_3": "", "image_3": "" } }
Returns data as a single JSON record, also allows partial editing of the record1, 2.
1 - IT IS FORBIDDEN to change user data such as: first_name, last_name, patronymic, email, phone.
2 - IT IS FORBIDDEN to change any data if the moderation status is not "new".
-
URL
/api/v1/submitData/<id>/
-
Method:
GET /submitData/<id>/
- getting a single record using the GET method.
PATCH /submitData/<id>/
- partial editing of one record using the PATCH method. -
URL Params
Required:
id=[integer]
-
Data Params
None
-
Success Response:
-
Code: 200 OK
{ state : 1, message : "Данные успешно отредактированы."}
Content:Префикс: "Пер." Название: "Перевал Teodulpass" Другое название: "Теодуль, Teodulo" Соединяет: "ледник Теодуль и долину реки Мармор" Статус данных: "new" Категория трудности: "winter-1A" Широта: 45.94271 Долгота: 7.70897 Высота: 3301 <------ 3323 Имя: "Василий" Фамилия: "Васильев" Отчество: "Васильевич" Электронная почта: "vasyl60@example.com" Телефон: "+70123456789" Название фото 1: "Перевал Teodulpass-1" URL изображения 1: "https://upload.wikimedia.org/wikipedia/commons/e/ef/Colle_del_Teodulo_001.jpg" Название фото 2: "Перевал Teodulpass-2" URL изображения 2: "https://upload.wikimedia.org/wikipedia/commons/thumb/4/44/Rif-theodulo.jpg/800px-Rif-theodulo.jpg" Название фото 3: "" <------ Перевал Teodulpass-3 URL изображения 3: "" <------ https://upload.wikimedia.org/wikipedia/commons/f/f7/Passo-Teodulo.jpg
-
-
Sample Call:
{ "id": 1, "beauty_title": "Пер.", "title": "Перевал Teodulpass", "other_titles": "Теодуль, Teodulo", "connect": "ледник Теодуль и долину реки Мармор", "add_time": "2023-07-19T12:06:44.305663+03:00", "status": "new", "level": "winter-1A", "coordinates": { "id": 1, "latitude": 45.94271, "longitude": 7.70897, "height": 3323 }, "user": { "id": 1, "first_name": "Василий", "last_name": "Васильев", "patronymic": "Васильевич", "email": "vasyl60@example.com", "phone": "+70123456789" }, "images": { "title_1": "Перевал Teodulpass-1", "image_1": "https://upload.wikimedia.org/wikipedia/commons/e/ef/Colle_del_Teodulo_001.jpg", "title_2": "Перевал Teodulpass-2", "image_2": "https://upload.wikimedia.org/wikipedia/commons/thumb/4/44/Rif-theodulo.jpg/800px-Rif-theodulo.jpg", "title_3": "Перевал Teodulpass-3", "image_3": "https://upload.wikimedia.org/wikipedia/commons/f/f7/Passo-Teodulo.jpg" } }
- Python 3.8.10
- Django 4.2
- Django-filter 23.1
- Python-decouple 3.8
- Requests 2.28.2
- REST framework 3.14.0
- drf-writable-nested 0.7.0
- drf-yasg 1.21.7
- Folder name: pereval_fstr
- On the repository page сlick the
Code
button in the top right corner. A menu will pop up in which you need to selectDownload ZIP
. - Save and extract the folder to any convenient location.
Rank | Languages |
---|---|
1 | Python |
I tried to implement using the rest framework to record a client in a beauty salon. The client will be able to make an appointment at the salon using a mobile application. To do this, the client needs to register. Next, you need to choose a salon in which he wants to be provided with services. After that, select the service itself, then select the master. After specify the client's name, contact number for communication, e-mail, date and time of the visit.
Returns data as a list of JSON records
-
URL
/api/v1/user-records/
-
Method:
POST /user-records/
- creating a record using the POST method.
GET /user-records/
- getting record via GET method. -
URL Params
None
-
Data Params
{ "salon": "", "master": "", "services": "", "name": "", "phone": "", "email": "", "date": "" }
-
Success Response:
-
Code: 201 CREATED
Content:Название салона: "" Имя мастера: "" Название услуги: "" Имя: "" Телефон: "" Электронная почта: "" Дата и время записи: ""
-
-
Error Response:
- Code: 400 BAD REQUEST
Content:{ error : "Это поле не может быть пустым." }
- Code: 400 BAD REQUEST
-
Sample Call:
{ { "id": 1, "salon": "Братиславская", "master": "Аня", "services": "КОМПЛЕКС МАНИКЮР", "name": "Валерия", "phone": "+70123456789", "email": "example@example.com", "date": "01.08.2023 в 09:00" } }
Returns the data as a single JSON record, and also allows you to delete (cancel) the record.
-
URL
/api/v1/user-records/<id>/
-
Method:
GET /user-records/<id>/
- getting a single record using the GET method.
DELETE /user-records/<id>/
- deleting an entry (cancellation). -
URL Params
Required:
id=[integer]
-
Data Params
None
-
Success Response:
-
Code: 200 OK
Content:Название салона: "Братиславская" Имя мастера: "Аня" Название услуги: "КОМПЛЕКС МАНИКЮР" Имя: "Валерия" Телефон: "+70123456789" Электронная почта: "example@example.com" Дата и время записи: "01.08.2023 в 09:00"
-
-
Sample Call:
{ { "id": 1, "salon": "Братиславская", "master": "Аня", "services": "КОМПЛЕКС МАНИКЮР", "name": "Валерия", "phone": "+70123456789", "email": "example@example.com", "date": "01.08.2023 в 09:00" } }
- Python 3.8.10
- Django 4.2
- Python-decouple 3.8
- Requests 2.28.2
- REST framework 3.14.0
- Djoser 2.2.0
- Folder name: manicure
- On the repository page сlick the
Code
button in the top right corner. A menu will pop up in which you need to selectDownload ZIP
. - Save and extract the folder to any convenient location.
Rank | Languages |
---|---|
1 | Python |
- "Project - Art Gallery" - Personal project for my artist daughter.
- Possibility to create categories of artwork.
- Possibility to add, edit, and delete artwork.
- The ability to share artwork on social networks.
- The app's interface is also adapted for the mobile version.
- The contact form for sending messages to the owner with email notifications.
- The web app has been translated into English and Russian, and you can choose between them.
- A personal project for my artist daughter for her birthday.
- Using HTML and Bootstrap templates, JS and CSS styles.
- Python 3.12.3
- Django 5.0.6
- Django-simple-captcha 0.6.0
- Python-decouple 3.8
- Django-modeltranslation 0.19.3
- Folder name: art_gallery
- On the repository page сlick the
Code
button in the top right corner. A menu will pop up in which you need to selectDownload ZIP
. - Save and extract the folder to any convenient location.
Rank | Languages |
---|---|
1 | Python |
2 | CSS |
3 | HTML |
4 | JS |
- "Project - Wedding salon v2" - Personal project for business.
- The ability to create categories for dresses or accessories.
- The ability to add, edit, and delete dress, accessory or bride models.
- The ability to search for dress models using filters.
- The ability to write a product review if you are authorized.
- The ability to like or dislike dress or accessory models.
- The ability to share a dress or accessory model on social media.
- The ability to register, authenticate, and authorize a user.
- The ability to add multiple photos to models.
- Pagination implemented.
- Implemented custom handlers for 403, 404, and 500 errors.
- New review email notification implemented.
- New email notification from the contact form implemented.
- Personal project for business.
- Using HTML and Bootstrap templates, JS and CSS styles.
- Python 3.12.3
- Django 5.0.6
- Django-allauth 0.63.3
- Django-filter 24.2
- Python-decouple 3.8
- Django-simple-captcha 0.6.0
- Folder name: wedding_salon_v2
- On the repository page сlick the
Code
button in the top right corner. A menu will pop up in which you need to selectDownload ZIP
. - Save and extract the folder to any convenient location.
Rank | Languages |
---|---|
1 | Python |
2 | CSS |
3 | HTML |
4 | JS |