Skip to content

Instantly share code, notes, and snippets.

View aeruo's full-sized avatar
☄️
I may be slow to respond.

Emmanuel Alabi aeruo

☄️
I may be slow to respond.
View GitHub Profile
@aeruo
aeruo / login_required.py
Created September 8, 2023 11:02
Python decorator function to require login.
def login_required(f):
"""
Decorate routes to require login.
http://flask.pocoo.org/docs/1.0/patterns/viewdecorators/
"""
@wraps(f)
def decorated_function(*args, **kwargs):
if session.get("user_id") is None:
return redirect("/")
return f(*args, **kwargs)
@aeruo
aeruo / db_init.py
Last active September 8, 2023 11:03
Executes sql from schema.sql file into database
import sqlite3
def dbinit():
connection = sqlite3.connect('database.db')
with open('schema.sql') as f:
connection.executescript(f.read())
cur = connection.cursor()
connection.commit()
connection.close()
@aeruo
aeruo / theme.js
Created September 8, 2023 10:57
Jquery script for dark mode toggle
$(document).ready(function () {
// Check local storage for user's theme preference
const currentTheme = localStorage.getItem('theme');
if (currentTheme) {
$('#theme-stylesheet').attr('href', currentTheme);
}
// Toggle dark mode when the checkbox changes
$('#dark-mode-toggle').change(function () {
if ($(this).is(':checked')) {
@aeruo
aeruo / ecommerce-schema.sql
Created September 8, 2023 10:33
Basic sql database schema for ecommerce sites.
# Create a new SQLite database or open an existing one
sqlite3 e_commerce.db
# Define the Users table
CREATE TABLE Users (
user_id INTEGER PRIMARY KEY,
username TEXT,
email TEXT,
password_hash TEXT,
first_name TEXT,
@aeruo
aeruo / pages.js
Last active September 8, 2023 10:47
jQuery script for page handling, making it easier to contain multiple pages within one html file.
$(function(){
//when a button is clicked
$('.page-button').on('click', function(){
// Get the target page
var $target = $(this).attr('data-target');
var $targetSelector = 'section#' + $target;
// Show target page
$($targetSelector).removeClass('page-hidden');
$($targetSelector).addClass('page-visible');
// Hide everything page