Code Monkey home page Code Monkey logo

cyclebay's Introduction

Introduce by Python Class

Welcome to the passionate Software Developer profile!

Hi there ๐Ÿ‘‹

I'm a Full Stack Developer with over two years of hands-on experience.

I specialize in a range of modern technologies including:

โœ”๏ธ Backend: Python (Flask, Django)

โœ”๏ธ Frontend: JavaScript (React, Vue.js, jQuery), CSS3 (Sass, Bootstrap), HTML5

โœ”๏ธ Databases: SQL, Django ORM, SQLAlchemy, PostgreSQL

โœ”๏ธ Development Tools: Unit testing, CI/CD pipelines

โœ”๏ธ Cloud Services: AWS, Heroku

โญ Certified by Code Institute as a Full Stack Software Developer, I have a strong passion for learning new technologies and building web applications. I am self-motivated, hard-working, and responsible, with the ability to work both independently and as a team player.

What I Do:

  • Full-Cycle Web development: planning, designing, developing, testing, deploying, and maintaining applications
  • Building and integrating RESTful APIs
  • Bot development
  • Script automation
  • Web scraping/crawling

On my GitHub profile, you'll find a variety of projects showcasing my abilities in software development. I'm always open to new challenges and opportunities, and I welcome collaborations and contributions to my projects.

Thank you for visiting my profile! If you have any questions or suggestions, please feel free to contact me.

๐Ÿ“จ Contact Me

Gmail Badge

Telegram Telegram

๐Ÿ’Ž My Tech Stack

JavaScript React Vue.js JQuery Python Django Flask Pytest Aiogram PostgreSQL Postman HTML5 Css3 Bootstrap Linux Git CI/CD Docker AWS Heroku Adobe Photoshop Stripe

๐Ÿ’ผ Projects

CycleBay Responsive Mockup CycleBay is a B2C e-commerce platform that allows customers to buy bicycles online. This is Django-based full stack web application that uses PostgreSQL database to store and manage data. The app is deployed on Heroku cloud platform and uses AWS S3 cloud service to store static and media files. The payment system powered by Stripe.
Job Platform that helps Jobseekers find desired jobs and helps Employers connect with the right candidates. It's a Full Stack Django-based web application. It uses PostgreSQL as a database and Bootstrap and jQuery for Frontend. Get Job Responsive Mockup
Word Wheel Responsive Mockup The Educational JavaScript game that challenges users to test their vocabulary skills by guessing words based on the provided definitions. The game based on a single interactive page with a fully responsive design and intuitive user interface. The app uses the Free Dictionary API to get the definitions of the words.
Python CLI application designed to manage a library's book inventory using a Google Spreadsheet API. The app allows users to perform CRUD operations on the books stock in the library, as well as to check overdue books and view borrowed books. Library System Mockup
BarberShop Responsive Mockup HTML/CSS Static Barbershop Website for Successful Barbershop Business. The website is designed in such a way as to interest the user, give useful information about the services and increase the chances of visiting the Barbershop. The appearance and UI design is quite user-friendly, stylish and responsive.
DateTime Calculator is a Telegram Bot developed in Python using Aiogram 2.x Framework, Datetime and Dateutil libraries. DateCalcBot can calculate the difference between two dates in different units of time and their combinations. DateTimeCalc

๐Ÿ’ป Hackathons

Name Hackathon Certificate
๐Ÿง™โ€โ™€๏ธ ๐™’๐’Š๐™ฉ๐’„๐™'๐™จ ๐˜ฝ๐’“๐™š๐’˜ - Halloween Hackathon

๐Ÿ”ท All my other study projects can be found in the Study Projects repository.

๐Ÿ“ˆ GitHub Stats

GitHub Streak Top Langs

cyclebay's People

Contributors

pavlo-myskov avatar

Watchers

 avatar

cyclebay's Issues

TECH: Setup Bootstrap and Crispy Forms

Tasks:

  • - Add and configure base template
  • - Add bootstrap cdn to base template
  • - Install django-crispy-forms: pip install django-crispy-forms
  • - Add crispy_forms to the INSTALLED_APPS in settings.py
  • - Install Bootstrap4 template pack for django-crispy-forms: pip install crispy-bootstrap4
  • - Add CRISPY_ALLOWED_TEMPLATE_PACKS = "bootstrap5" and CRISPY_TEMPLATE_PACK = "bootstrap4" to settings.py
  • - To use the Bootstrap template pack, add the {% load crispy_forms_tags %} to the base.html file of the project

USER STORY: Facebook page

Description:

As a Store Owner, I need a Facebook page, so that I can promote my store on social media.

USER STORY: Email confirmation

Description:

As a Shopper, I want to be able to receive an email confirmation after registering so that I can verify that my account registration was successful

USER STORY: Special offers

Description:

As a Shopper, I want to be able to quickly identify deals, clearance items and special offers so that I can take advantage of special savings on products I'd like to purchas

USER STORY: Sorting

Description:

As a Site User, I want to be able to sort the list of available products so that I can easily identify the best-priced, categorically, color, and brand sorted bikes.

USER STORY: Add product brand

Description:

As a Store Owner, I want to be able to add a product brand, so that users can group products into brands.

USER STORY: Add product color

Description:

As a Store Owner, I want to be able to add a product color, so that users can group products into colors.

USER STORY: Sort a specific category of products

Description:

As a Shopper, I want to be able to sort a specific category of products so that I can find the best-priced product in a specific category or sort the products in that category by name

USER STORY: Bike Details

Description:

As a Shopper, I want to be able to view the details of a bike so that I can identify the price, brand, color, size and image

USER STORY: Edit/update a product

Description:

As a Store Owner, I want to be able to edit/update a product, so that I can change the price, description, image or any other attribute of the product.

USER STORY: Total of my purchases

Description:

As a Shopper, I want to be able to easily view the total of my purchases at any time so that I can avoid spending too much

USER STORY: Select the size and quantity

Description:

As a Shopper, I want to be able to easily select the size and quantity of a bike when purchasing it, so that I can ensure I don't accidentally select the wrong bike, size or quantity

USER STORY: Home page

Description:

As a Shopper, I want to be able to see a home page so that I can quickly understand the purpose of the site and learn more about the business

USER STORY: Password recovering

Description:

As a Shopper, I want to be able to easily recover my password in case I forget it so that I can recover access to my account

TECH: Django Allauth Setup

Tasks:

  • Install django-allauth and update requirements.txt
  • Add AllAuth URLs to the main urls.py file of the project
  • Configure settings.py:
INSTALLED_APPS = [
    ...
    # 'django.contrib.messages',
    'django.contrib.sites',
    'allauth',
    'allauth.account',
    'allauth.socialaccount',
]

# Specify the context processors as follows:
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                # Already defined Django-related contexts here

                # `allauth` needs this from django
                'django.template.context_processors.request',
            ],
        },
    },
]

MIDDLEWARE = (
    # ...
    "django.contrib.messages.middleware.MessageMiddleware",

    # Add the account middleware:
    "allauth.account.middleware.AccountMiddleware",
)

# ___Allauth settings___
AUTHENTICATION_BACKENDS = [
    # Needed to login by username in Django admin, regardless of allauth
    'django.contrib.auth.backends.ModelBackend',
    # allauth specific authentication methods, such as login by e-mail
    'allauth.account.auth_backends.AuthenticationBackend',
]

# The SITE_ID setting specifies the database ID of the Site object associated with that particular settings file. So now the django app handle multiple sites from one database.
SITE_ID = 1

# Specifies the URL that the user will be redirected
# to after a successful login or logout.
LOGIN_REDIRECT_URL = '/'
LOGOUT_REDIRECT_URL = '/'
LOGIN_URL = 'accounts/login/'

# Removes the username field from the signup form.
ACCOUNT_USER_MODEL_USERNAME_FIELD = None
# Requires the user to enter a unique e-mail address during signup.
ACCOUNT_EMAIL_REQUIRED = True
# Removes the username field from the signup form.
ACCOUNT_USERNAME_REQUIRED = False
# Allows the user to log in using their e-mail address and password.
ACCOUNT_AUTHENTICATION_METHOD = 'email'
# Prevents multiple signups with the same e-mail address.
ACCOUNT_UNIQUE_EMAIL = True
# asks the user to Remember Me at login to keep the user logged in
# even after closing the browser.
ACCOUNT_SESSION_REMEMBER = None
# User gets blocked from logging back in until a timeout.
ACCOUNT_LOGIN_ATTEMPTS_LIMIT = 5

# email confirmation
ACCOUNT_EMAIL_VERIFICATION = 'mandatory'

# Logs the user in after confirming the email address.
# Works only when user signs up
ACCOUNT_LOGIN_ON_EMAIL_CONFIRMATION = True

# Allows avoiding the need to confirm the email address
# on page form and can be done only by clicking the link
ACCOUNT_CONFIRM_EMAIL_ON_GET = True
  • Run migrations
  • Configure Email SMTP to send verification:
# Email SMTP settings
if DEVELOPMENT:
    EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
    DEFAULT_FROM_EMAIL = '[email protected]'
else:
    EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
    EMAIL_HOST = 'smtp.gmail.com'  # for gmail
    EMAIL_PORT = 587
    EMAIL_HOST_USER = os.getenv('EMAIL_HOST_USER')
    # password must be generated from gmail account,
    # called App Passwords, not the same as account password
    EMAIL_HOST_PASSWORD = os.getenv('EMAIL_HOST_PASSWORD')
    DEFAULT_FROM_EMAIL = os.environ.get('EMAIL_HOST_USER')
    EMAIL_USE_TLS = True
  • Copy Allauth overridable templates to project:
    $ cp -r ~/.virtualenvs/<project_name_env>/lib/python<version>/site-packages/allauth/templates/account/* templates/account/

USER STORY: Wish list

Description:

As a Shopper, I want to be able to view my wish list so that I can see what I want to buy later

USER STORY: Contact form

Description:

As a Shopper, I want to be able to contact the store owner using the contact form so that I can ask any questions I may have

USER STORY: Delete a bike

Description:

As a Store Owner, I want to be able to delete a product, so that I can remove it from the store.

USER STORY: User profile, history

Description:

As a Shopper, I want to be able to have a personalized user profile so that I can view my personal order history and order confirmations, and save my payment information

TECH: Heroku Configuration

Tasks:

  • Create Heroku app
  • Set the environment variables in Heroku
  • Disable collectstatic (if static file storage is not configured yet)
  • Add the Heroku app URL to the ALLOWED_HOSTS list in settings.py
  • Install gunicorn and add to requirements.txt
  • Create a Heroku Procfile

USER STORY: View bikes in the bag

Description:

As a Shopper, I want to be able to view bikes in my bag to be purchased, so that I can identify the total cost of my purchase and all items I will receive

USER STORY: Searching results

Description:

As a Shopper, I want to be able to easily see what I've searched for and the number of results so that I can quickly decide whether the product I want is available

TECH: Django Setup

Tasks:

Django Setup

  • Install Django
  • Create a Django project
  • Configure .gitignore
  • Configure Environment Variables
  • Setup requirements.txt
  • Setup ALLOWED_HOSTS (Add the Heroku app URL to the list)
  • Config Clickjacking protection: X_FRAME_OPTIONS = 'SAMEORIGIN'

USER STORY: Login/Logout

Description:

As a Shopper, I want to be able to easily login or logout so that I can access my personal account information

USER STORY: Save bikes

Description:

As a Shopper, I want to be able to save the products I want to buy later so that I can keep track of them

USER STORY: NavBar

Description:

As a Shopper, I want to be able to easily navigate throughout the site to find content so that I can find what I'm looking for efficiently

USER STORY: Secure checkout

Description:

As a Shopper, I want to be able to feel my personal and payment information is safe and secure so that I can confidently provide the needed information to make a purchase

USER STORY: List of bikes

Description:

As a Shopper, I want to be able to view a list of bikes so that I can select one to purchase

USER STORY: Filters

Description:

As a Shopper, I want to be able to use filters so that I can sort multiple categories, brands, colors, price,s and sizes of products simultaneously

USER STORY: Register

Description:

As a Shopper, I want to be able to easily register for an account so that I can have a personal account and be able to view my profile

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.