Dynamic Website

Coming up with an idea to make a website around a topic.

Overview

The hardest part of a project is coming up with the idea. Last week we were given our next assignment and it isn’t very strict on requirements. I can do almost anything, as long as it follows the few rules. As this was the first week back, I did some stuff on the last week of term. All I did was continue to learn about Flask and some more of its features. Luckily, I know lots of Flask because it is the main requirement of the website.

What was completed

As said above, we got an assignment that requires us to make a dynamic website. It has 8 main requirements:

  1. Users can create new accounts on the system;
  2. Users will need to provide their username and password to authenticate to the system.
    1. Passwords should NOT be stored in plain text - you must use some kind of obfuscation/hashing/security mechanism to protect your user’s credentials;
  3. Once logged in, users can construct new collections from the existing items in the database. Users should be able to edit and delete the collections they own;
  4. Users can also add new items to the collections. Users should only be able to edit items they have created – once added, they should not be able to delete items;
  5. When a collection is viewed by a user, all items in that collection should be presented, and appropriate filtering and sorting options be available to them;
  6. Clicking on any item in the collection will reveal additional information about that item in an appropriate on-screen location;
  7. When there are no users logged in, you can choose whether or not to display a login screen, random collections/items, or some explanation of how the site works; and
  8. Your server should implement an appropriate URL structure built on the Flask webserver, and use the MVC design pattern.

These aren’t very complicated requirements, as such I am using them to get ideas on what to make (but still checking often that it follows it). The gist that I have gotten is that it needs users, and they need to be able to make “collections” (which is up to us to decide). The other requirements just make sense with this, 1/2 require a user system (and safe storage of password), 3/4 is allowing a user to make collections, 5/6/7 is letting users view other user’s collections, and 8 is just saying use Flask and MVC.

I currently have no idea what to make the “collections” have. I could have it that the user decides, and I have a website for every possible collection, or I can make it more specific like only movies (and possibly just user ranking them). My current thinking is that collections just refer to a user being able to many add things and then group is in many collections. Next week I should have decided on this, so stay tuned for that.

There is another section which is the presentation, but that is very far in the future (requires the project done first).

Reflection

How do you plan to do this assignment?

There are many steps that I will do to complete this assignment. The first thing I will need to do is choose the target audience, this is basically the point of the website, and kinda the most important choice. After choosing it, I will need to research what the requirements of it is, for example if I was doing movies - I would need to find out that things need to be stored. I then should start making the website, followed by testing and adding new features (hopefully it will be testing at the end). The presentation will need to be written and practiced (this can be during the making and testing step). And finally, I need to submit the code and present the presentation to people.

What are you most exited for?

The main thing that I am excited for is making a good website. I want to build something that is useful and could actually be used in a real-life scenario (ie could be run for normal internet users). However, some things I am not exited for. Making the presentation seems like the hardest because generally if is the assignment in English that is painful (but it may get easier once I have a project fully done). Coming up with an idea is hard but it needs to be done really soon because of the importance.

How different is this to last year's assignment?

This is kind of different to the last project assignment we had. The last one required us to make “Anko” and had very strict boundaries on what needed to be made and stored. The current assignment is broader because it has more choices. I like the ability to have choice, but it scary knowing that I need to make a good choice now so that it can be fun throughout the whole assignment time (and possibly even after).