Code Monkey home page Code Monkey logo

dsci-532_2024_4_crime-tracker's Introduction

Vancouver Crime Tracker 2023 Dashboard πŸ‡¨πŸ‡¦πŸ

Welcome to the Vancouver Crime Tracker 2023 Dashboard!

About | Dashboard | Navigation | Feedback & Support | Developer's Note | Contributing | License

About

This "Crime Tracker" dashboard, designed specifically for law enforcement administrators and policymakers in the Vancouver Police Department, provides a comprehensive analytical view of crime data in Vancouver for the year 2023. Users can explore crime patterns based on location, time, and crime categories through interactive visualization and filtering options that empowers informed decision-making for resource allocation, tackling crime reduction. This dashboard features spatial heatmaps, temporal distribution, and summary statistic, offering users valuable insights into crime hotspots, temporal trends and spatial trends across neighborhoods. The dataset used comprised of eight specific crime types and eleven neighbourhoods. It can be found on GeoDASH.

Dashboard

Our dashboard are hosted on the Render platform, accessible here.

Navigating the Dashboard:

  • Selected Crime Count Statistic: Located at the top of the left sidebar, this statistic reflects the total count of crimes in the selected neighborhood(s) and crime type(s).
  • Neighborhood and Crime Type Filters: Utilize the multi-selection filters on the left sidebar to choose multiple neighborhoods and specific crime types of interest.
  • Crime Count for Different Crimes: The bar chart at the top left of the dashboard displays the count of each crime type within the selected neighborhood(s), offering insights into the distribution of different types of crimes.
  • Crime Count in Different Neighborhood: The bar chart at the bottom left illustrates the count of crimes across eleven different neighborhoods for the selected crime type(s), enabling comparison of crime frequency across neighborhoods.
  • Geo-Location Map: Positioned on the top right, the map displays the exact geographic location of selected crimes. Tooltips provide additional information, including the neighborhood and specific crime type associated with each data point.
  • Hourly Time Series: The line chart on the bottom right showcases the hourly time series, allowing examination of how crime incidents vary throughout the day.

Interacting with Visualizations:

  • Tooltip Information: Hover over elements in the charts to access detailed statistics via tooltips, providing additional insights into specific data points.
  • Map Interaction: Explore different areas by clicking and dragging on the map to navigate and zoom in or out as needed.
  • Download and Reset Options: Utilize the Plotly toolbar, available in every chart, to download the specific plot of interest in various formats for further analysis or sharing purposes.

Feedback and Support:

  • All feedback is welcomed! If you encounter any issues during your experience, please do not hesitate to reach out via opening a new issue in this repository.
  • Any comments and suggestions for improvement can also be logged through the same method.
  • To log a new issue, navigate to the Issues tab and select New on the upper right. Fill in the title and a brief description and then click Submit new issue.

Developer note:

In order to work on this dashboard locally, please run the instructions provided below.

  1. Clone this GitHub repository using this command:
git clone https://github.com/UBC-MDS/DSCI-532_2024_4_crime-tracker.git
  1. Run the following commands from the root directory of this project folder to create a virtual environment and activate it:
conda env create -f environment.yml
conda activate crimetracker
  1. To run the dashboard locally, make two adjustments to the code in the app.py file located inside the src folder as follow:
  • Comment out line 9 that says server = app.server
  • Change the arguement for app.run(debug=False) to app.run(debug=True)
  • Run the following command.
python src/app.py

Contributing Guidelines

Please check out our contributing guidelines for more details. This project is released with a Code of Conduct. By contirbuting to this project, you agree to abide by its terms.

License

This project is licensed under the terms of the MIT license.

dsci-532_2024_4_crime-tracker's People

Contributors

786213750 avatar s-voon avatar waleedmahmood1 avatar monorouzi23 avatar

Stargazers

 avatar

dsci-532_2024_4_crime-tracker's Issues

Repository structure

  • Creating project structures and folders
  • Update ReadMe.md, code of conduct, license, contributing
  • don't forget to citation :)

Create env yaml

I created a conda environment yaml file for every to start the project with.

Improve styling

  • Make title more interesting, either just nicer font, or in sidebar on top.
  • Implement the use of a CSS format.
  • Moving the crime type bar chart, next to the map plot, can work as a legend for the crime types.

Proposal: Motivation and Purpose

In a few sentences, provide motivation for why you are creating a dashboard:

Who is your target audience, and what role are you embodying?
What is the problem the target audience is facing and why is it important to solve?
How can your dashboard assist in solving this problem for the intended target audience?

Proposal: Research questions

For this it can be helpful to create a brief persona description of a member in your intended target audience
Then, think about what they might want to do with your app and write small user story. User stories are typically written in a narrative style and include:

  • The specific context/background of the user
  • The overall goal of the user
  • Tasks needed to reach that goal
  • A hypothetical walkthrough of how the user would accomplish those tasks with your app
  • The outcome/action that the user would take based on the information they find in the app

Feedback from Wenyu Nie

Larger Points of Feedback

  • Alignment with Usage Scenario and Target Audience: The dashboard aligns well with the intended usage scenario for Chief Constable Adam Palmer and the Vancouver Police Department's requirements. It effectively visualizes crime data to assist in resource allocation and strategic planning. However, I would recommend adding an additional visualization that directly correlates crime type with time of day across neighborhoods. This could enable even quicker identification of patterns for certain types of crimes.

  • Intuitiveness and Usability: The dashboard is user-friendly and provides a good amount of interaction through filters. However, it could be enhanced by integrating a tutorial or help overlay for first-time users. This would guide them through the features and ensure they leverage the tool to its fullest potential.

  • Plot Selection and Widget Interaction: The selection of plots seems appropriate, but the hourly counts plot could include more detailed interaction. Consider integrating a feature that allows users to click on a specific hour to drill down into more granular data, such as the types of crimes occurring during that hour.

  • Plot Descriptions and Intuitiveness: The plots are generally self-explanatory, but including a brief description or legend for each plot could enhance clarity, especially for less tech-savvy users.

Smaller Points of Feedback

  • Readability of Text: Some text elements, particularly in the bar chart, are difficult to read due to small font size. Increasing the text size or the angle or changing the font could improve readability.
  • Dashboard Layout: The layout is clean and follows a logical structure, but it might benefit from a slight rearrangement. Placing the temporal distribution plot next to the spatial heatmap could help users make connections between time and location more efficiently.
  • Widget Functionality: Ensure that the filtering options include a clear way to reset to default or when all filters are removed. This can prevent confusion and enhance the user's ability to start a new analysis quickly.

Suggestions

Your dashboard provides a solid foundation for the Vancouver Police Department to analyze crime data. To further improve it, I recommend focusing on a few areas:

  • Enhanced Plot Interaction: Allow for more detailed interaction with plots for deeper analysis. e.g. selecting points in the map, zooming in to certain time points of the time plot.
  • User Onboarding: Implement a help feature for new users to get accustomed to the dashboard quickly.
  • Text Readability: Improve the readability of text on all visualizations.
  • Dashboard Layout Optimization: Reassess the layout to facilitate a better data analysis flow.

Your work so far is already very wonderful and the topic is very interesting. I believe with a few adjustments, it can become an even more powerful tool for the Vancouver Police Department. I look forward to seeing the implemented changes and am confident they will greatly enhance the utility and user experience of the "Crime Tracker" dashboard. Thank you for deliverying such a cool dashboard!

Individual plot names

Names for each of the individual plots:

  • Map plot: "Crime occurrence by region"
  • Line plot: "Crime occurrence by hour"
  • Bar chart 1: "Count of Crimes"
  • Bar chart 2: "Crime count across neighbourhoods"

Read me write up

Add the project title and a summary of its purpose in ~3-4 sentences.

Feedback from Atabak Alishiri

Dear Group 4,

I have reviewed your Vancouver Crime Tracker Dashboard, and I'm impressed with the comprehensive data and interactive elements you've incorporated. Below are some suggestions I believe could enhance your dashboard’s utility and user experience:

  1. Map Clarity: Consider aggregating crime data points into clusters or a heat map to improve the map's readability and immediately identify high-crime areas.

  2. Marker Interactivity: Enable tooltips or pop-up details for crime incidents on the map to provide context and data on user interaction.

  3. Visual Connection: Reconfigure the layout to clearly associate "Total Crime Count" figures with the map data, potentially using matching colors or proximity placement.

  4. Layout Spacing: Increase whitespace and consider collapsible sections for dense areas of the dashboard to enhance navigation and avoid user overwhelm.

  5. Map Legend Integration: Add a clear legend for map colors corresponding to different crime types, facilitating user understanding of the map's color coding.

  6. Font Uniformity: Unify font styles and sizes across the dashboard to create a cohesive visual flow and professional appearance.

  7. Dashboard Introduction: Provide a brief introductory text or tutorial to guide new users on how to interact with the dashboard for an improved first-time experience.

I hope these suggestions serve as practical steps toward making your dashboard an even more potent analytical tool.

Best,
Atabak Alishiri

Feedback from Jordan Cairns

Great job overall! I found myself exploring the ap for personal interest. A testament to the quality! I'm now scared to leave my apartment haha.

But we aren't reading this for the praise, we're here for the constructive feedback!

-A higher level criticism I'd want to address, is what if people wanted to use your tool for research purposes?
Is there a way to integrate the various widgets together in constructive ways to achieve this? Your usage scenario gives an example of "Adam may perhaps notice that there seems to be a greater count of "robberies/snatchings" being committed at "night" in "Hastings"". Addressing this query seems challenging with how the dashboard is laid out. I don't have a solution, but something to think about.

-The hourly count graph visually could benefit from some spicing up. It's at the center of the users focal point , large , yet the title is ambiguous and the color scheme is default.

-It appears like there's a bug in the hourly count data? The hour zero count is so much higher than all the other values. Yes I could see midnight having the most crimes commited, but not anywhere close to the degree shown in the graph.

-Some way to show the relationship between area of the city and crime types could be interesting. For example what crimes are more likely to be commited in Kitsilano compared to downtown. Only showing them on the street map doesn't really give a clear depiction of their relative relationships.

Was a pleasure reviewing your dashboard! Good interesting choice of data set and it was presented clearly.

Improve layout

  • Create a sidebar and include contributor names, repo link.
  • Align all elements, including the sidebar and the plots, with each other.

Feedback from Joel M4

Implement two major and three minor

Major:

  • #85
  • Some dynamic info in card of how many crimes are currently selected.

Minor:

  • Barcharts not aligned
  • Create side and include names, repo link etc
  • Align all elements of the dashboard
  • Make title more interesting, either just nicer font, or in sidebar on top.
  • #86

Proposal: App sketch & brief description

Create a sketch of what you envision your app to look like. Your sketch can be hand-drawn or put together using a graphics editor or slide show software. The sketch should be saved as img/sketch.png and linked in this section of the proposal so that the image shows up when reading the proposal on GitHub.

Feedback from Joel

Major:

  • #95
  • Change one bar chart to be crime type
  • Consistent color mapping

Minor:

  • Put dropdown closer to chart they change
  • Pick color combos more carefully
  • Make map more up and central
  • Multi selection
  • Background on title
  • Pick data so that map plots is connected or increase performance

Proposal: Description of the data

In your proposal, briefly describe the dataset and the variables that you will visualize:

Include how many rows and columns there are in the dataset (that you plan to use).
There should be a clear link to how the dataset and the variables you describe will help you solve your target audience's problem.
Indicate at least one new variable that you are planning to derive/engineer for your visualizations.
If there are no new variables to derive, indicate what additional information you would have liked to have in the dataset to better be able to answer your research questions (even if it is impossible for you to engineer it).
If you are planning to visualize a lot of columns, provide a high level description of the variable types rather than listing every single column.
For example, indicate that the dataset contains a variety of categorical variables for demographics and provide a brief list rather than describing every single variable.
You may also want to consider visualizing a smaller set of variables given the short duration of this project.

Feedback from Hina Bandukwala

Firstly, great job on the dashboard. It was truly hard for me to come up with suggestions, so awesome work!

  • Minor suggestions for improving the statistics card: Maybe adding a light colour to the card to differentiate it from the widgets would be nice for the overall layout.
  • Same thing for figure titles: They are getting lost on the page, so maybe bolding them would be helpful?
  • It would be helpful to know how the crime categories are defined e.g. "Mischief" is ambiguous. Also, I don't think you mentioned where the data is from. You could include these details in the README or with a "Learn more" button as Joel suggested.
  • For the overall "Total Crime Count", is that a total for Vancouver? It could be helpful to see percentage changes in crime rate from the previous year displayed on the card.
  • In the bar plot that displays the breakdown of crime types, including a percentage in the tooltip would be helpful. For example, for "Theft Vehicle", it would indicate both the count and what percentage of the total crime does it account for. Same for the crime count per neighbourhood.
  • The static plots (i.e. barplot and card) could be placed together and differentiated from the other three plots which change based on user input.
  • I like the idea of the "hourly count". It would be useful to have a static time plot that shows hourly crime counts for the entire city, broken up by the type of crime. For example, if law enforcement decides to allocate resources to Kitsilano, they could use this plot the following way: Given that vehicle theft is high between 1 AM to 3 AM in Kitsilano, we can allocate X resources here.

Overall, great job everyone!!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.