Skip to content

ggeerraarrdd/film-series

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

37 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Landscape Architecture Film Series Website

An early aughts basic website recreated using modern tools

Description

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.

Film Series

More screenshots below.

Table of Contents

Features

  • 🌐 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

Project Structure

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

Prerequisites

TODO

Getting Started

Dependencies

  • See requirements.txt

Installation

  1. Clone the repository

    git clone https://github.com/ggeerraarrdd/film-series.git
  2. Create and activate a virtual environment

    python -m venv venv
    source venv/bin/activate  # On Windows use `venv\Scripts\activate`
  3. Install the dependencies

    pip install -r requirements.txt

Configuration

  1. Create an .env file

    Place 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'
  2. 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
  3. Flask Secret Key

    # Flask Secret Key
    SECRET_KEY='your_flask_secret_key'
  4. 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.

Usage

  1. Go into the app directory and run the command:

    flask run
  2. Open the film series website

    Copy and open the URL displayed after 'Running on' in the terminal.

Author(s)

Version History

Release Notes

Initial Release

The original website is archived on the Internet Archive.

Future Work

Improvements and new features development are ongoing.

  • Create CMS for user management and content creation and editing (currently in alpha - see repo)

License

Contributing

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.

Acknowledgments

  • The distribution code for CS50's Finance pset served as a template for the app.

Screenshots

Film Series (Image created using Portfoliofy.)

Film Series Film Series Film Series Film Series

Frontispiece

  • TBD