Animation-heavy personal portfolio on Next.js: a custom cursor, a page-transition loader, and canvas backgrounds.
canvas-animationscss-modulesdark-themehandcodednextjspersonal-websiteportfolioreact
1from os.path import join, realpath, dirname
2
3
4SITE_ROOT = join(realpath(dirname(__file__)), '..')
5
6
7# Required even if unused.
8DATABASES = {
9 'default': {
10 'ENGINE': 'django.db.backends.sqlite3',
11 'NAME': join(SITE_ROOT, 'development.db'),
12 }
13}
14
15
16TIME_ZONE = 'America/New_York'
17LANGUAGE_CODE = 'en-us'
18USE_I18N = False
19USE_L10N = True
20
21
22MEDIA_ROOT = join(SITE_ROOT, 'media/')
23MEDIA_URL = '/media/'
24STATIC_ROOT = join(SITE_ROOT, 'static/')
25STATIC_URL = '/static/'
26ADMIN_MEDIA_PREFIX = '/static/admin/'
27
28
29ROOT_URLCONF = 'urls'
30INTERNAL_IPS = ['127.0.0.1']
31COMPRESS_CSS_FILTERS = ['compressor.filters.cssmin.CSSMinFilter']
32
33
34STATICFILES_FINDERS = (
35 'django.contrib.staticfiles.finders.FileSystemFinder',
36 'django.contrib.staticfiles.finders.AppDirectoriesFinder',
37 'compressor.finders.CompressorFinder',
38)
39TEMPLATE_LOADERS = (
40 'django.template.loaders.filesystem.Loader',
41 'django.template.loaders.app_directories.Loader',
42)
43MIDDLEWARE_CLASSES = (
44 'django.middleware.common.CommonMiddleware',
45 'django.contrib.sessions.middleware.SessionMiddleware',
46 'django.contrib.messages.middleware.MessageMiddleware',
47)
48
49
50INSTALLED_APPS = (
51 'django.contrib.sessions',
52 'django.contrib.messages',
53 'django.contrib.staticfiles',
54 'compressor',
55 'gunicorn',
56 'core',
57)
58
59
60ADMINS = [('Isaac Bythewood', '[email protected]')]
61MANAGERS = ADMINS
62LOGGING = {
63 'version': 1,
64 'disable_existing_loggers': False,
65 'handlers': {
66 'mail_admins': {
67 'level': 'ERROR',
68 'class': 'django.utils.log.AdminEmailHandler'
69 }
70 },
71 'loggers': {
72 'django.request': {
73 'handlers': ['mail_admins'],
74 'level': 'ERROR',
75 'propagate': True,
76 },
77 }
78}