MarMarAgain / PP5V2

0 stars 1 forks source link

Ocean of Notions - Masterworks

Ocean of Notions is a Django-based web application designed for the Ocean of Notions Theatre Company's educational outreach program, Masterworks. This application allows educators to sign up, book workshops via a Stripe payment gateway, and cancel them. It is adaptable to fit into a preexisting company page or stand-alone. The user can also leave a review for the workshops they've booked.

Masterworks PR Image

Setup Instructions

Prerequisites

Installation

  1. Clone the repository:

    git clone https://github.com/MarMarAgain/PP4MWV2.git
    cd PP4MWV2
  2. Create a virtual environment:

    python3 -m venv venv
    source venv/bin/activate  # On Windows, use `venv\Scripts\activate`
  3. Install the required packages:

    pip install -r requirements.txt
  4. Apply migrations:

    python manage.py migrate
  5. Create a superuser:

    python manage.py createsuperuser
  6. Run the development server:

    python manage.py runserver
  7. Access the application:

    Open your browser and navigate to http://127.0.0.1:8000.

Application Overview

UX Design File Guide

UX Design File

Accounts

The accounts app manages user registration, login, and profile management.

Purchase

The bookings app handles workshop bookings and cancellations.

Workshops

The workshops app manages the workshop details, scheduling, and booking records.

Other_Pages

This app currently holds very little but will be utilised more as the website develops

Static Files

The static directory contains CSS, JavaScript, and image files used in the application.

Templates

The templates directory contains HTML templates used in the application. Key templates include:

Deployment

Using Heroku

  1. Login to Heroku:

    heroku login
  2. Create a new Heroku app:

    heroku create ocean-of-notions
  3. Add the Heroku remote:

    git remote add heroku https://git.heroku.com/masterworkspp4.git
    
  4. Deploy the application:

    git push heroku main
  5. Run database migrations on Heroku:

    heroku run python manage.py migrate
  6. Create a superuser on Heroku:

    heroku run python manage.py createsuperuser
  7. Open the Heroku app:

    heroku open

Usage

  1. Register a new user:

    • Navigate to the signup page and create a new account.
  2. Login:

    • Use the login page to access your account.
  3. Edit Profile:

    • Edit your profile information through the profile page.
  4. Book a Workshop:

    • Browse available workshops and place in cart.
    • Purchase workshop via stripe payment.
    • Email confirmation is sent to both the uer and the admins email.
  5. Cancel a Booking:

    • Cancel your bookings through the booking management page.
    • Email confirmation is sent to put the admins email and the users.
  6. Review a Booking:

    • Leave a review for workshops booked.
    • Edit review feature.

Testing

NA

SEO Strategy

Google Document

Books

  1. Django for Beginners: Build websites with Python and Django

    • Vincent, W. S. (2018). Django for Beginners: Build websites with Python and Django. Leanpub.
      • Reference - Project Structure and Setup Instructions
  2. Django 3 By Example

    • Melendez, A. (2020). Django 3 By Example. Packt Publishing.
      • Reference - accounts/models.py, forms.py, views.py, urls.py
  3. Python Crash Course, 2nd Edition: A Hands-On, Project-Based Introduction to Programming

    • Matthes, E. (2019). Python Crash Course, 2nd Edition: A Hands-On, Project-Based Introduction to Programming. No Starch Press.
      • Reference - General Python code
  4. The Definitive Guide to Django: Web Development Done Right

    • Holovaty, A., & Kaplan-Moss, J. (2009). The Definitive Guide to Django: Web Development Done Right. Apress.
      • Reference - models.py, views.py, urls.py, templates

Online Resources

  1. Django Documentation

    • Django Software Foundation. (n.d.). Django documentation. Retrieved from https://docs.djangoproject.com/en/stable/
      • Reference - Project Structure, Setup Instructions, models.py, views.py, urls.py, templates
  2. Mozilla Developer Network (MDN) Django Tutorial

  3. Django REST Framework

  4. Heroku: Deploying Django Apps

  5. Django Packages

    • Django Packages. (n.d.). Django Packages. Retrieved from https://djangopackages.org/
      • Reference - Enhancing project with additional packages

Corresponding References to Project Code