Skip to content

A more basic and personal version of Rotten Tomatoes, but for anime. This was created as my third project for a software development course with Code Institute.

Notifications You must be signed in to change notification settings

kel151/MyAnimeVault

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MyAnimeVault

Milestone 3 Project: Data Centric Development - Code Institute

For my third milestone project, I choose to create an app that allowed users to share, rate, and comment about their favourite anime titles.

Demo:

A live demo can be found here

Here is the responsiveness preview: Responsiveness Preview

Introduction:

Have you ever tried to remember the name of that really good anime you watched ages ago? Have you ever tried to remember what your intial thoughts on it were or all of the reasons why you liked (or disliked) it? If you're anything like me, then the answer to both of these questions is yes. That's where MyAnimeVault comes in.

Think of it as a very niche and collective film critiquing app for personal use. You watch an anime that you like or dislike that you might want to remember for the purposes of recommending it or rewatching it later, simply make an entry, and there you go. Your intial thoughts and feelings are recorded for reference later.

Content:

  • UX πŸ‘
    • Project Goals
    • Target Audeience Goals
    • Site Owner Goals
    • User Stories
    • User Requirements and Expectations
  • Design Choices 🎨
    • Colours
    • Background Images
  • Wireframes πŸ”§
    • Website Layout
    • Account Creation Flowchart
    • Database Design
  • Features 🎑
    • Features that have been developed
    • Features that will be implemented in the future
  • Technologies Used πŸ‘¨β€πŸ’»
  • Planning + Testing ✏️ πŸ”Œ
  • Bugs 🐞
  • Deployment πŸš€
    • Deploying to Heroku
    • Locally run this project
  • Credits πŸ’³
  • Disclaimer πŸ“

User Experience πŸ‘

Project Goals:

The goal of this project is to provide users with a online repository in which they can record their opinions of the anime titles they've seen, rating them and providing their intial thoughts. This project will serve as a collective film critiquing service for personal use that caters to a very specific genre and demographic.

Target Audience Goals:

  • To be able to record anime titles in one place.
  • To be able to record my intial thoughts, feelings, opinion on each title.
  • To be able to rate each title.

Site Owner Goals:

  • Generate further interest in anime/Japanese animation
  • Encourage curiosity about the viewing habits and perspectives of others.
  • Encourage critical thinking about the anime titles that we watch, and provoke deeper exoloration of their themes, ideas, etc.
  • Collect user information for the purposes of site analytics and gaining insights into how the general public receives certain titles.

User Stories:

  • As a user, I expect log in to be quick and easy.
  • As a user, I expect to navigation of the site to be intuitive and require as few clicks as possible.
  • As a user, I expect to maaking an entry to be quick and simple.
  • As a user, I expect my entries to be stored in such a way that makes them easy to view and access.

User Requirements and Expectations:

Requirements:

  • Interact with a visually appealing website.
  • Navigate the website with ease & with fast load times.
  • Make entries in an quick and uncomplicated way.
  • Find previous entries easily and see them clearly displayed.

Expectations:

  • The users can interact with the elements visible on the page.
  • The website loads with sufficient speed.
  • The content on the website renders correctly on desktop, mobile and tablet.
  • The user feels satisfied with the experience.

Design Choices

It was important for me to create a project aesthetic that suited the theme of Japanese anime, and so I decided to use the same template I used for my milestone 2 as a base, because it fit the theme really well. Therefore, I opted for a unifying background image that contained some popular Japanese titles. This was then framed by a dark footer and navbar, which the social media handles of the footer being pink, because when most people think of anime, they often think of either soft pastels like pink. I also opted for the accordians to be of a similar black to the footer and navbar, to provide more of a sense of cohesion. All in all, I feel all of these elements blended together in a way that appeared cohesive and seamless as well facilitated a positive user experience.

Colours:

I carefully considered which colours I wanted to use because I knew I wanted to mix some genre-defining pastels with some darker elements, but I also needed to ensure that the colour combinations complimeted the background image as well as each other while not overpowering one another or competing for the user's attention in jarring or dissonant way. So, after careful deliberation, I decided to use coolers, which is a colour scheme generator. It helped to experiment with dfferent palette and eventually decide on a group of colours that I think were attractive and appropriate for the project.

Background Images:

The background image for this app was taken from Unsplash.

Wireframes/Flowcharts

I used balsamiq to develop the wireframes for this project. I chose balsamiq because their process for creating wireframes is quick, simple, and intuitive. Having the wireframes developed before commencing the project made development much easier and more straightforward. It provided a basic blueprint that I could follow which made the endeavor faster and more manageable.

The wireframes can be found here. However, certain elements of the initial wireframes were left out of the final project due to time constraints. These elements include the log-in feature and the user account page.

Account Creation Flowchart:

Despite the account creation and log in process seeming rather simple, I still opted to create a very basic flowchart for it for the purposes of visualizing the user's journey. It can be found here. The account creation feature was left out due to time constraints.

Database Design:

I used NoSQL features from MongoDB in order to be able to map out the collection below.

Data Storage Types:

The types of data that are stored in the MongoDB database:

  • String
  • Number

Entry Collection:

Title Key in Collection Data Type
Title title String
Category category String
Rating rating Number
Comments comments String

View the schema templates for the database collections here.

Features

Features that have been developed:

  • Fixed navbar.
  • Animated social media handles.
  • Responsive accordian display of entries.

Features that will be developed in the future:

  • Register/create an account.
  • Log-in and log-out functionality.
  • Email authentication for added security.
  • Search bar for entries to make locating them easier when the list grows.

Technologies Used πŸ‘¨β€πŸ’»

Languages:

Tools & Libraries:

Planning + Testing

Planning:

Planning for this was relatively smooth because I had a clear idea of what I wanted to achieve before starting it. However, I ran into a few difficulties, the main one being time constraints. Therefore, I couldn't include as many features as I planned to.

Testing:

I used a combination of DevTools and Am I Responsive? to test the responsiveness of the app on devices of differetnet sizes and makes. I also provided a link to the app to family and friends so as to receive firsthand feedback as to how responsive the app truly was. I received no complaints. An example of the responsiveness can be viewed in the first image at the beginning of this ReadMe.

I tested the navbar and it works as intended. It's fixed and the links bring you to the relevant pages.

I tested the social media handles. Their animations work and they bring you to the relevant pages.

I tested the CRUD functionality and it works as intended. Users are able to create an entry, view entries, edit entries, and delete entries.

I used Code Verifier, and found no errors: Code Verifier

I used PEP8, and found a few errors, the majority being to do with spacing. However, I prefer this spacing as I feel it makes the code a little neater: PEP8

I used CCSSLint, and found the following errors and warnings: CSSLint

Bugs 🐞

I didn't encounter any noteworthy bugs while building this project. I surmise that this was because of the relatively simple nature of what this app entailed. The process was comparatively straigthforward once I learned how to do what I needed to do.

Deployment

MyAnimeVault was developed on Gitpod, using git and Github to host. Howeever this section will be written from the perspective of Visual Studio Code because I started with that IDE and then moved to Gitpod halfway through.

Cloning MyAnimeVault from Github:

You will need to install the following:

You will also need a MongoDB account for the databsae.

WARNING: You may need to follow a different guide based on the OS you are using, read more here.

  • 1: Clone the MyAnimeVault repository by either downloading from here, or if you have Git installed typing the following command into your terminal.
git clone https://github.com/kel151/MyAnimeVault
  • 2: Navigate to this folder in your terminal.
  • 3: Enter the following command into your terminal.
python3 -m .venv venv
  • 4: Initilaize the environment by using the following command.
.venv\bin\activate 
  • 5: Install the relevant requirements & dependancies from the requirements.txt file.
pip3 -r requirements.txt
  • 6: In your IDE now create a file where you can store your SECRET_KEY and your MONGO_URI, follow the schema structure located in data/schemas to properly setup the Mongo Collections.

  • 7: Run the application using

flask run 

or

Python3 app.py

Deploying MyAnimeVault to Heroku:

  • 1: Create a requirements.txt file using the following command.
pip3 freeze > requirements.txt
  • 2: Create a Procfile with the following command.
echo web: python3 app.py > Procfile
  • 3: Push these newly created files to your repository.
  • 4: Create a new app for this project on the Heroku Dashboard.
  • 5: Select your deployment method by clicking on the deployment method button and select GitHub.
  • 6: On the dashboard, set the following config variables:
Key Value
IP 0.0.0.0
PORT 8080
MONGO_URI mongodb+srv://:@<cluster_name>-qtxun.mongodb.net/<database_name>?retryWrites=true&w=majority
SECRET_KEY "your_secret_key"
  • 7: Click the deploy button on the Heroku dashboard.
  • 8: The site has been deployed the Heroku.

Credits

Media

The images used in this project were taken from Unsplash, an open license and highly customizable resource that I greatly recommend.

Acknowledgements

  • My mentor, Simen, for all of his patience, advice, and recommendations.
  • The Code Institute Slack Community for all of their advice, kindness, and encouragement.
  • The Student Care team for the constant support, encouragement, and check-in messages.
  • Claire Lally from the Student Care Team who has been staunch supporter and a source of light and inspiration during this process.
  • The Code Insitute tutoring team (particularly Samantha, Scott, Xavier, and Tim) for their patience and perpetual willingness to help, no matter how late.
  • Michael from the tutoring team who stayed up with me many a late night to help. I wouldn't know as much as I do now without his patient and effective guidance.
  • My classmate Sebastien Denommee for all of his support and advice on improving my work.
  • George Pyott for his help in improving my ReadMe, the example he set was instrumental.

Disclaimer

The contents of this website are for educational purposes only.

About

A more basic and personal version of Rotten Tomatoes, but for anime. This was created as my third project for a software development course with Code Institute.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published