Website project

Overview

In this project, you will be creating an event hosting website. Users will be able to sign up for your site, login and logout. Users will also be able to host events and register to attend events.

Required Packages

  • Python 3.x
  • Flask
  • Jinja2 Templating engine (included with Flask)
  • Flask-SQLAlchemy

GitHub Classroom Link

Please click on the following link to get your project repository. https://classroom.github.com/a/5iLdlElF

Specification

Below are the specifications for the application. I have split the specifications up based on MVC. Please read through the entired specification and submission guidlines before you start development.

Model

  • User, each User must have:
  • username
  • each User must have a unique username
  • blank usernames are not allowed
  • password
  • passwords must be hashed before being saved to the database
  • blank passwords are not allowed
  • Event, each Event must have:
  • title
  • blank titles are not allowed
  • description
  • start date & time
  • blank starts are not allowed
  • end date & time
  • blank ends are not allowed
  • Relationships between User and Event
  • User can host many Events
  • User can attend many Events and each Event will have many Users attending
  • Note: You are not limited to the columns listed above. Add additional columns and association table as needed to facilitate the relationships between User and Event.

Controller

  • You will need a homepage that displays:
  • a list of upcoming events hosted by all users
  • if a user is logged in, display a separate list of upcoming events hosted by the logged in user
  • for both lists above, list the events in order of their start date & time
  • The User will need routes/functions defined to:
  • register for the website
  • login to the website
  • logout of the website
  • The Event will need routes/functions defined to allow the user to:
  • create an event with the logged in user as host
  • cancel an event
  • a user cannot cancel an event they are not hosting
  • when a user tries to cancel an event, they must be asked to confirm that they want to cancel the event before it is removed from the database
  • register to attend an event
  • a user should not be allowed to sign up to attend an event they are hosting
  • you do not need to allow users to unregister for an event in this project

Views (Templates)

  • A base template must be created and extended by all other templates
  • Templates need to be created for the following routes:
  • the homepage
  • user registration
  • user login
  • event creation
  • event cancellation (to act as the confirmation since JavaScript is not part of this project)
  • The main menu for the site must show different links depending on if the user is logged in.
  • Events on the homepage must list:
  • title
  • host
  • description
  • start date & time
  • end date & time
  • a link to allow a user to register to attend an event if the user is not the host of the event
  • a cancel event link if the user is the host of the event
  • Design and CSS is left up to you. The only design requirement is that the page is presented in a clear and readable manner.

Misc & Hints

  • Look at db.DateTime for Event start date & time and end date & time
  • You are not required to use a datetime picker for the start date & time and the end date & time form fields. A textbox with date & time format instructions will suffice
  • Treat the one to many and many to many relationships between User and Event as two separate relationships
  • You can use any of the examples from class for inspiration and you may use snippets from them in your code. However, **DO NOT** copy them in their entirety and edit them for this project

Submission Guidelines

  • Place any comments you have for the grader to help them grade your assignment in the FOR_GRADER file
  • Name the main (controller) file events.py
  • Name the sqlite database events.db
  • Do not submit any IDE files, feel free to add them to the .gitignore file under "# Editor files"
  • You must be able to run your application by setting the FLASK_APP environment variable to events.py and running "flask run"
  • You must be able to initialize your database by setting the FLASK_APP environment variable to events.py and running "flask initdb"
  • Be sure to remember to push the latest copy of your code back to your GitHub repository before the the assignment is due. GitHub Classroom will not stop you from pushing additional commits after the deadline but it will make the latest commit before the deadline the submission that the grader will grade. It will also notify us if previous work is edited after the deadline.

Get Help With a similar task to - Website project

Login to view and/or buy answers.. or post an answer

Related Questions

Similar orders to Website project
21
Views
0
Answers
Nested imbalanced design of expriment using Box-Adjusted wald-type test
I need to provide statistical analysis of a nested non-balanced design of an experiment. I am would like to have the implementation R. I will need the answers to be provided as shown in the attached file (Project.pdf), and also would like to have access to...
34
Views
0
Answers
CMPT 200 Coding Homework
Write a class called Fraction that can store a rational number (reminder: those numbers that can be expressed in the form a/b, where a and b are integers are rational numbers). For example, a variable with a value of ½ would be created using oneHalf ...
15
Views
0
Answers
Artificial Inteligence System Technique
This is a Master Degree course and I have attached example questions, there are 5 questions and only 3 need to be answered. We will get the actual questions on the day of the exam and they need to be completed within 2 hours, which means the expert has to ...