An early aughts basic website recreated using modern tools
Note
ALL CONTENTS IN THIS REPO ARE FOR EDUCATIONAL PURPOSES ONLY.
In the early aughts, I co-founded the Landscape Architecture Film Series for the Department of Landscape Architecture at the University of Illinois Urbana/Champaign and for which I designed a website.
In need of a website to use as a vehicle to play around with a few AWS services (see Future Work) but not wanting to spend anytime to ideate and design a new one from scratch, I turned to my old website. Its look and feel has aged well, I think, and indeed looks remarkably contemporary. For instance, if the current version of MoMA's film series is anything to go by, bold color blocking isn't a dated design choice.
This, then, is that 20-year-old static website resurrected as a dynamic web application with a data model to speak of, using modern tools such as Flask, SQLite, VS Code and Git.
Note A custom-made Content Management System (CMS) for the website is in development. Check it out in its own repo.
More screenshots below.
- Description
- Features
- Project Structure
- Prerequisites
- Getting Started
- Author(s)
- Version History
- Future Work
- License
- Contributing
- Acknowledgments
- Screenshots
- π Dynamic web application built with Flask and SQLite
- π οΈ Modern development tools integration
- π Historical archive of a student-led film series website from the early 2000s
- π¬ Recreated film database preserving information about past screenings
- πΊοΈ Google Maps integration for historical location reference
- π± Mobile-responsive design preserving original color blocking aesthetic
film-series/
β
βββ app/
β β
β βββ blueprints/
β β β
β β βββ main/
β β βββ __init__.py
β β βββ routes.py
β β βββ static/
β β βββ templates/
β β
β βββ config/
β β βββ __init__.py
β β
β βββ crud/
β β βββ __init__.py
β β
β βββ data/
β β βββ lafs.db
β β
β βββ infra/
β β βββ __init__.py
β β
β βββ utils/
β β βββ __init__.py
β β
β βββ app.py
β
βββ docs/
βββ logs/
βββ .gitignore
βββ LICENSE
βββ README.md
βββ requirements.txt
TODO
- See
requirements.txt
-
Clone the repository
git clone https://github.com/ggeerraarrdd/film-series.git
-
Create and activate a virtual environment
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
-
Install the dependencies
pip install -r requirements.txt
-
Create an
.env
filePlace the file in the root directory and add the following as default:
# Database Path DATABASE_NAME='data/lafs.db' # Database Connection Pool POOL_SIZE=5 MAX_OVERFLOW=10 POOL_TIMEOUT=30 POOL_RECYCLE=-1 ECHO=False # Database Retry Settings MAX_RETRIES=3 BASE_DELAY=1 MAX_DELAY=10 # Flask Secret Key SECRET_KEY='your_flask_secret_key' # Google Maps API Key MAP_API_KEY='your_map_api_key'
-
Database
# Database Path DATABASE_NAME='data/lafs.db' # Path to SQLite database file # Database Connection Pool POOL_SIZE=15 # Max number of persistent connections MAX_OVERFLOW=5 # Max number of connections above POOL_SIZE POOL_TIMEOUT=30 # Seconds to wait for available connection POOL_RECYCLE=1800 # Seconds before connection is recycled ECHO=False # Enable SQLAlchemy engine logging # Database Retry Settings MAX_RETRIES=3 # Max retry attempts for failed operations BASE_DELAY=1 # Initial delay between retries in seconds MAX_DELAY=10 # Max delay between retries in seconds
-
Flask Secret Key
# Flask Secret Key SECRET_KEY='your_flask_secret_key'
-
Google Maps API Key
# Google Maps API Key MAP_API_KEY='your_map_api_key'
An API Key is needed for the embedded map to work. Before you can create one, you will need to create a Google Cloud project, for which you need a Google Cloud account.
-
Go into the
app
directory and run the command:flask run
-
Open the film series website
Copy and open the URL displayed after 'Running on' in the terminal.
The original website is archived on the Internet Archive.
Improvements and new features development are ongoing.
- Create CMS for user management and content creation and editing (currently in alpha - see repo)
This project is not accepting contributions at this time. It is intended solely for personal learning and exploration. However, feel free to clone the repository and use it as a learning resource.
- The distribution code for CS50's Finance pset served as a template for the app.
(Image created using Portfoliofy.)
- TBD