๐ŸŒŸ Next generation, user-oriented Stardew Valley perfection tracker.

Overview

Stardew.app Logo

Stardew.app
Next generation, user-oriented Stardew Valley perfection tracker.

Overview

Stardew.app is a next-generation, user-oriented Stardew Valley perfection tracker. The website was born when Jack LaFond and Clemente Solorio, two avid players of the game, decided to get together and create a better community resource.

Features

Currently, the website is able to track the following:

  • Farmer information + achievements
  • Bundle tracking
  • Fishing tracking with fish information
  • Cooking tracking with recipe ingredients
  • Farm & forage tracking
  • Crafting tracker
  • Museum and artifact tracking
  • Discord OAuth2 login to preserve data across devices
  • Stardew save file upload to process data

Roadmap

Stardew.app is actively in development. We're currently working on:

  • Perfection tracker
  • Secret notes tracker
  • Ginger Island tracker

Contributions

Contributions are always welcome! Feel free to open a PR.

Stardew.app has been contributed to by the lovely people below <3

clxmente
Clemente Solorio
jacc
Jack LaFond
leahlundqvist
Leah Lundqvist
TheLDB
Landon
brandonsaldan
Brandon Saldan
ms7m
Mustafa
cbyrneee
Conor Byrne
IanMitchell
Ian Mitchell
Comments
  • 9 check and validate uploaded file type

    9 check and validate uploaded file type

    Validating a correct file upload

    • Regex check to confirm the file name is the expected format
      • if (!/[a-zA-Z]+_[0-9]+/.test(file.name)) { /* error */ }
    • Check the file type to make sure it doesn't have a file type like SDV save files
      • if (file.type != "") { /* error */ }
    • look for a game version in the file and throw an error if a version isn't detected (not a SDV save file) image

    Validating valid version for save file

    • Since for now, we're only supporting SDV version 1.5.0 and greater, throw an error if the game version found is lower using semver

      const semVerGte = require("semver/functions/gte");
      
      const gameVersion = jsonObj.SaveGame.gameVersion; 
      
      if (!semVerGte(gameVersion, "1.5.0")) { /* error */ }
      

      image

    • Bit of a longer message for this error since I'm interested in seeing how many people want support for older versions. We could track this through a discussion or issue on Github here or direct them to the discord to request support.

    enhancement 
    opened by clxmente 3
  • 21 filtering capability

    21 filtering capability

    Filtering Capability

    Turned the informational badges into clickable filters Filter Demo

    New Expandable Card Component

    Used Alistair's project component to design these expandable cards for stardrops and museum items (thanks @alii) Expandable Card Component Demoj

    opened by clxmente 2
  • Removed duplicate text

    Removed duplicate text

    On the home page, there is a text saying you can log in with discord to save your data across devices. Below that, there is another text saying the exact same thing which is shown if you're not logged in. This PR removes the second text which is only shown if the user isn't logged in.

    opened by OfficialCRUGG 2
  • fix(sidebar-mobile): Fixed z-index of modal popup on mobile navbar

    fix(sidebar-mobile): Fixed z-index of modal popup on mobile navbar

    Im so sorry for another PR on the same mobile-navbar issue lmao it was late and i accidentally deleted the z-index that fixed the mobile modal window

    but uh it should be fixed now, video below of the result, hoping this one actually works

    https://user-images.githubusercontent.com/29960599/186679698-0022385e-99bb-4c0a-9982-497326ab7bdf.mp4

    opened by TheLDB 2
  • Fixed Modal functionality on mobile & added typings for env variables

    Fixed Modal functionality on mobile & added typings for env variables

    Previously merged PR #35, but it broke the popout modal on accounts, commit here fixes that issue (see image below) brave_8xXmtPvVWO

    attempted to add typings for all the environment variables but it didnt work and im tired so idc

    i'd offer to write docs on how to contribute but that sounds very boring ty ๐Ÿ‘

    opened by TheLDB 2
  • Updated Mobile Sidebar (Resolves #29)

    Updated Mobile Sidebar (Resolves #29)

    Issue #29: Update Mobile Sidebar

    • [X] Add dark mode to mobile sidebar

    • [X] Add login button to mobile sidebar

    • [X] Add upload save file button to mobile side bar

    • Also added discord & github icons to the mobile navbar to match the desktop UI brave_BFP7bqw1U4

    opened by TheLDB 2
  • Social fixes

    Social fixes

    • [x] Sam's iconURL breaks the site @jacc
    • [x] Hearts don't work with the current slideover logic @clxmente
    • [x] Birthdays should be capitalized @jacc
    • [ ] Home and family should not show if no values @jacc
    • [ ] Icon in sidebar is stretched @jacc
    bug enhancement 
    opened by jacc 2
  • 6 social tab

    6 social tab

    Ordered by marriage candidates

    image

    When not married, marriage candidates can reach 10 hearts

    image

    Select Hearts to apply to relationship

    show hearts

    Slideover with more information about the villager

    image

    opened by clxmente 2
  • Museum page/parser improvements

    Museum page/parser improvements

    • Uploading a save file now marks artifacts/minerals
    • Museum parser now includes artifact/mineral donated count
    • Museum achievements are now correctly toggled based on total values
    • File upload is now abstracted to a function to be used in sidebar/index page
    opened by jacc 2
  • New user popup (#27, #8, #18)

    New user popup (#27, #8, #18)

    The new user popup at the bottom now houses some important tools for users

    • A credits popup, for information on the team
    • A data deletion option, to wipe anything they might have uploaded to the site
    • A logout button (if logged in)
    • A version label.

    This button also houses a new login flow, with a popup telling users about what they get from logging into Stardew.app.

    enhancement 
    opened by jacc 2
  • fix: scraping monsters does not properly scrape rewards

    fix: scraping monsters does not properly scrape rewards

    Sample Output:

    {
        "Slime": {
            "Monster Type": [
                "Slime (any color,excludes Big Slimes and Slimes in Slime Hutch)",
                "/mediawiki/images/thumb/7/7b/Green_Slime.png/24px-Green_Slime.png"
            ],
            "Quantity": "1000",
            "Reward": [
                "Slime Charmer Ring",
                "/mediawiki/images/thumb/5/51/Slime_Charmer_Ring.png/24px-Slime_Charmer_Ring.png"
            ],
            "Reward Description": "Prevents damage from slimes."
        },
        "Void Spirits:": {
            "Monster Type": [
                [
                    "Shadow Shaman",
                    "/mediawiki/images/thumb/1/11/Shadow_Shaman.png/16px-Shadow_Shaman.png"
                ],
                [
                    "Shadow Shaman (dangerous)",
                    "/mediawiki/images/thumb/d/d9/Shadow_Shaman_Dangerous.png/16px-Shadow_Shaman_Dangerous.png"
                ],
                [
                    "Shadow Brute",
                    "/mediawiki/images/thumb/e/e0/Shadow_Brute.png/16px-Shadow_Brute.png"
                ],
                [
                    "Shadow Brute (dangerous)",
                    "/mediawiki/images/thumb/1/15/Shadow_Brute_Dangerous.png/16px-Shadow_Brute_Dangerous.png"
                ],
                [
                    "Shadow Sniper",
                    "/mediawiki/images/thumb/a/a4/Shadow_Sniper.png/16px-Shadow_Sniper.png"
                ]
            ],
            "Quantity": "150",
            "Reward": [
                "Savage Ring",
                "/mediawiki/images/thumb/5/55/Savage_Ring.png/24px-Savage_Ring.png"
            ],
            "Reward Description": "Gain a short speed boost whenever you slay a monster."
        },
        "Bats:": {
            "Monster Type": [
                [
                    "Bat",
                    "/mediawiki/images/thumb/a/ad/Bat.png/24px-Bat.png"
                ],
                [
                    "Bat (dangerous)",
                    "/mediawiki/images/thumb/8/8d/Bat_Dangerous.png/24px-Bat_Dangerous.png"
                ],
                [
                    "Frost Bat",
                    "/mediawiki/images/thumb/3/36/Frost_Bat.png/24px-Frost_Bat.png"
                ],
                [
                    "Frost Bat (dangerous)",
                    "/mediawiki/images/thumb/d/dd/Frost_Bat_Dangerous.png/24px-Frost_Bat_Dangerous.png"
                ],
                [
                    "Lava Bat",
                    "/mediawiki/images/thumb/c/c5/Lava_Bat.png/24px-Lava_Bat.png"
                ],
                [
                    "Iridium Bat",
                    "/mediawiki/images/thumb/d/d5/Iridium_Bat.png/24px-Iridium_Bat.png"
                ]
            ],
            "Quantity": "200",
            "Reward": [
                "Vampire Ring",
                "/mediawiki/images/thumb/a/a8/Vampire_Ring.png/24px-Vampire_Ring.png"
            ],
            "Reward Description": "Gain a little health every time you slay a monster."
        },
        "Skeletons:": {
            "Monster Type": [
                [
                    "Skeleton",
                    "/mediawiki/images/thumb/2/23/Skeleton.png/16px-Skeleton.png"
                ],
                [
                    "Skeleton (dangerous)",
                    "/mediawiki/images/thumb/8/8c/Skeleton_Dangerous.png/16px-Skeleton_Dangerous.png"
                ],
                [
                    "Skeleton Mage",
                    "/mediawiki/images/thumb/f/f5/Skeleton_Mage_Dangerous.png/16px-Skeleton_Mage_Dangerous.png"
                ]
            ],
            "Quantity": "50",
            "Reward": [
                "Skeleton Mask",
                "/mediawiki/images/thumb/1/12/Skeleton_Mask.png/24px-Skeleton_Mask.png"
            ],
            "Reward Description": "The red eyes are glowing mysteriously."
        },
        "Cave Insects:": {
            "Monster Type": [
                [
                    "Bug",
                    "/mediawiki/images/thumb/7/7d/Bug.png/24px-Bug.png"
                ],
                [
                    "Bug (dangerous)",
                    "/mediawiki/images/thumb/7/7c/Bug_Dangerous.png/24px-Bug_Dangerous.png"
                ],
                [
                    "Cave Fly",
                    "/mediawiki/images/thumb/8/8f/Cave_Fly.png/24px-Cave_Fly.png"
                ],
                [
                    "Cave Fly (dangerous)",
                    "/mediawiki/images/thumb/d/dc/Cave_Fly_Dangerous.png/24px-Cave_Fly_Dangerous.png"
                ],
                [
                    "Grub",
                    "/mediawiki/images/thumb/0/0c/Grub.png/24px-Grub.png"
                ],
                [
                    "Grub (dangerous)",
                    "/mediawiki/images/thumb/5/5b/Grub_Dangerous.png/24px-Grub_Dangerous.png"
                ],
                [
                    "Mutant Fly",
                    "/mediawiki/images/thumb/6/69/Mutant_Fly.png/24px-Mutant_Fly.png"
                ],
                [
                    "Mutant Grub",
                    "/mediawiki/images/thumb/6/62/Mutant_Grub.png/24px-Mutant_Grub.png"
                ],
                [
                    "Armored Bug",
                    "/mediawiki/images/thumb/1/19/Armored_Bug.png/24px-Armored_Bug.png"
                ],
                [
                    "Armored Bug (dangerous)",
                    "/mediawiki/images/thumb/2/2e/Armored_Bug_Dangerous.png/24px-Armored_Bug_Dangerous.png"
                ]
            ],
            "Quantity": "125",
            "Reward": [
                "Insect Head",
                "/mediawiki/images/thumb/3/35/Insect_Head.png/24px-Insect_Head.png"
            ],
            "Reward Description": "Not very pleasant to wield."
        },
        "Duggies:": {
            "Monster Type": [
                [
                    "Duggy",
                    "/mediawiki/images/thumb/3/3a/Duggy.png/24px-Duggy.png"
                ],
                [
                    "Duggy (dangerous)",
                    "/mediawiki/images/thumb/c/c9/Duggy_Dangerous.png/24px-Duggy_Dangerous.png"
                ],
                [
                    "Magma Duggy",
                    "/mediawiki/images/thumb/4/41/Magma_Duggy.png/24px-Magma_Duggy.png"
                ]
            ],
            "Quantity": "30",
            "Reward": [
                "Hard Hat",
                "/mediawiki/images/thumb/0/08/Hard_Hat.png/24px-Hard_Hat.png"
            ],
            "Reward Description": "Keep your dome in one piece."
        },
        "Dust Sprites:": {
            "Monster Type": [
                [
                    "Dust Sprite",
                    "/mediawiki/images/thumb/9/9a/Dust_Sprite.png/24px-Dust_Sprite.png"
                ],
                [
                    "Dust Sprite (dangerous)",
                    "/mediawiki/images/thumb/d/d0/Dust_Sprite_Dangerous.png/24px-Dust_Sprite_Dangerous.png"
                ]
            ],
            "Quantity": "500",
            "Reward": [
                "Burglar's Ring",
                "/mediawiki/images/thumb/8/8b/Burglar%27s_Ring.png/24px-Burglar%27s_Ring.png"
            ],
            "Reward Description": "Monsters have a greater chance of dropping loot."
        },
        "Rock Crabs:": {
            "Monster Type": [
                [
                    "Rock Crab",
                    "/mediawiki/images/thumb/d/d4/Rock_Crab.png/24px-Rock_Crab.png"
                ],
                [
                    "Rock Crab (dangerous)",
                    "/mediawiki/images/thumb/3/3e/Rock_Crab_Dangerous.png/24px-Rock_Crab_Dangerous.png"
                ],
                [
                    "Lava Crab",
                    "/mediawiki/images/thumb/1/1b/Lava_Crab.png/24px-Lava_Crab.png"
                ],
                [
                    "Lava Crab (dangerous)",
                    "/mediawiki/images/thumb/2/27/Lava_Crab_Dangerous.png/24px-Lava_Crab_Dangerous.png"
                ],
                [
                    "Iridium Crab",
                    "/mediawiki/images/thumb/e/ef/Iridium_Crab.png/24px-Iridium_Crab.png"
                ]
            ],
            "Quantity": "60",
            "Reward": [
                "Crabshell Ring",
                "/mediawiki/images/thumb/e/eb/Crabshell_Ring.png/24px-Crabshell_Ring.png"
            ],
            "Reward Description": "The top of the ring is made from enchanted crab shell."
        },
        "Mummies:": {
            "Monster Type": [
                [
                    "Mummy",
                    "/mediawiki/images/thumb/7/70/Mummy.png/16px-Mummy.png"
                ],
                [
                    "Mummy (dangerous)",
                    "/mediawiki/images/thumb/3/3b/Mummy_Dangerous.png/16px-Mummy_Dangerous.png"
                ]
            ],
            "Quantity": "100",
            "Reward": [
                "Arcane Hat",
                "/mediawiki/images/thumb/c/c7/Arcane_Hat.png/24px-Arcane_Hat.png"
            ],
            "Reward Description": "The type of cowboy hat worn by a wizard."
        },
        "Serpents:": {
            "Monster Type": [
                [
                    "Serpent",
                    "/mediawiki/images/thumb/8/89/Serpent.png/24px-Serpent.png"
                ],
                [
                    "Royal Serpent",
                    "/mediawiki/images/thumb/2/28/Royal_Serpent.png/24px-Royal_Serpent.png"
                ]
            ],
            "Quantity": "250",
            "Reward": [
                "Napalm Ring",
                "/mediawiki/images/thumb/8/82/Napalm_Ring.png/24px-Napalm_Ring.png"
            ],
            "Reward Description": "When you defeat an enemy, they explode."
        },
        "Magma Sprites:": {
            "Monster Type": [
                [
                    "Magma Sprite",
                    "/mediawiki/images/thumb/f/f2/Magma_Sprite.png/24px-Magma_Sprite.png"
                ],
                [
                    "Magma Sparker",
                    "/mediawiki/images/thumb/5/58/Magma_Sparker.png/24px-Magma_Sparker.png"
                ]
            ],
            "Quantity": "150",
            "Reward": "Marlon's Phone Number",
            "Reward Description": "Can call to utilize Item Recovery Service from home"
        }
    }
    
    opened by ms7m 2
  • Pick farmer file on a co-op save

    Pick farmer file on a co-op save

    When a co-op save is loaded, there should be a dropdown of some sort that shows the data of each farmer and the information. This way users can see all players of a co-op.

    enhancement help wanted 
    opened by jacc 0
  • Filtering capability

    Filtering capability

    The pages that have trackable items on them (mostly all of them) should have filterable content based on what the user clicks. The filter buttons are already in place (under the color indicator information), however do not have any functionality.

    • [ ] Artifacts filter
    • [ ] Museum filter
    • [ ] Cooking filter
    • [ ] Crafting filter
    • [ ] Fishing filter
    • [ ] Shipping filter
    enhancement help wanted 
    opened by jacc 0
  • =<1.5.0 upload support

    =<1.5.0 upload support

    This is more of an interest check on the functionality of supporting versions lower than 1.5.0. Right now, uploading a <=1.5.0 file will error, as the site was designed for the latest version of Stardew. With enough interest, we could potentially rewrite the website to remove/add portions to support lower versions. This issue will be used as a discussion board for that.

    discussion 
    opened by jacc 0
  • Bundle page improvements

    Bundle page improvements

    There's a bit left on the Bundles page that should be completed.

    • [ ] Save file processing of the bundles
    • [ ] Better design?
    • [ ] Item popout on first click
    • [ ] Single-time infobox telling users to click once to open info on the item, two times to mark it as complete
    enhancement help wanted 
    opened by jacc 0
Owner
stardew.app
Next generation, user-oriented Stardew Valley perfection tracker.
stardew.app
Income Expense Tracker is a user based income-expense tracking system featuring budget planning and statistical analysis.

Income-Expense-Tracker Features Income Expense Tracker is a user based income-expense tracking system featuring budget planning and statistical analys

Qian Xiang 3 Oct 6, 2022
A Tracker to Check the availability of vaccine through pincode and buzzer in case of availability

Welcome to covid-vaccine-tracker ?? A Tracker to Check the availability of vaccine through pincode and buzzer in case of availability ?? Homepage Prer

Ayush Bansal 21 Jun 7, 2021
CoWIN Vaccination Tracker, Below is the PRODUCTION LINK this is updated at end of each day. To see any latest Updates, please check the documentation

CoWIN Vaccination Slots Checking App. CoWIN Vaccination Slots Checking App is a user-friendly website that allow users to find vaccine in nearby avail

Stephin Reji 31 Jan 28, 2022
Worldwide-covid-statistics - covid-19 tracker developed using Reactjs, Axios , chartjs, material icons

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

Akinmegha Temitope Samuel 1 Jan 3, 2022
A ChargeDefi protocol tracker.

ChargeDefi Tracker chargedefitracker.com This project was created so I can easily track all of my investments across the different ChargeDefi vaults,

Vladislav Varadinov 6 Mar 11, 2022
World Covid Tracker With Javascript

World Covid Tracker Track the covid stats in every continent and each of their respective countries. Built with : React Redux-toolkit Tailwind Jest Gi

Shady Shawkat 7 Dec 19, 2022
Wallety is a budget tracker for personal finance and budget planning.

Wallety - Budget Tracker Wallety is a budget tracker for personal finance and budget planning. Table of Contents Screenshots Tech Stack Quick Start Ru

Skander Blaiti 71 Dec 9, 2022
This is a Covid Cases Tracker Web app , with Malawi cases as priority .......coontact stevenkamwaza@gmail.. for more info

Getting Started with Create React App This project was bootstrapped with Create React App. for demo visit https://mwcovid-tracker.vercel.app/ Availabl

null 3 May 25, 2022
Covid-19 Tracker is a mobile web application showcasing the covid-19 statistics in Africa.

Covid-19 Tracker is a mobile web application showcasing the covid-19 statistics in Africa. when the user clicks on the countries' cards, they will be rendered to the details page that contains more information about the covid-19 in the selected country. Also, the user can search for a specific country using the search bar.

Nedjwa Bouraiou 7 Sep 6, 2022
As a user, I want to be able to post about travel locations and provide comments and ratings. As a user, I want to be able to look at other users posts and search travel locations by rating.

Travel-bug https://travelbug-project.herokuapp.com/ Table of Contents User-Story Description Installation Usage Contributions Tests License Questions

Megan 3 Mar 2, 2022
A bookstore app that allows a user add a book, displays added book with reviews and rating for each book and allows a user delete a book.

BOOKSTORE A bookstore app that allows a user add a book, displays added book with reviews and rating for each book and allows a user delete a book. Bu

Promise Okechukwu 7 Nov 1, 2022
Next-multipart - Easy & Simple File Uploads for Next.js

Next-Multipart Next-multipart is a small utility library to ease the process of file uploads with Next.js. It uses formidable under the hood, but with

Tim Raderschad 10 Nov 11, 2022
A declarative, efficient, and flexible JavaScript library for building user interfaces.

React ยท React is a JavaScript library for building user interfaces. Declarative: React makes it painless to create interactive UIs. Design simple view

Facebook 200.2k Jan 8, 2023
A small component based app library composing user interfaces and apps.

See https://vibejs.com for ongoing documentation and info. VibeJS A small component based JavaScript library to build user interfaces and apps. If you

Bret 20 Nov 16, 2022
An application that has a frontend (user interface) that allows you to create, read, update or delete (CRUD) products using an API in which you can also create, read, update or delete products.

CRUD app with React and Firebase 9 An application that has a frontend (user interface) that allows you to create, read, update or delete (CRUD) produc

Jรบlio Bem 3 Sep 28, 2021
Application that show the survey results for backend frameworks to the user in real time.

.Net5 Hangfire and SignalR Survey Application Application that show the survey results for backend frameworks to the user in real time. The hangfire j

Cihat Girgin 4 Dec 17, 2021
TV Show App is an application that allows to searh tv shows based on user input. Each tv show is displayed in a Bulma Card component and when clicked, heads you to the official tv show site

TV SHOW APP TV Show App is an application that allows to search tv shows based on user input. Each tv show is displayed in a Bulma* Card component and

HENDEL SAMY 1 Dec 19, 2021
Recipe providing mobile app, User selects ingredients in pantry and is then provided recipes for those ingredients. App contains a signup/login, meal planner and grocery list pages.

Recipog Student Information Name Connor de Bruyn Username Destiro Assignment SWEN325 A2 Description โ€œRecipogโ€ is a recipe providing app that allows th

Connor de Bruyn 1 Dec 26, 2021
NetflixClone - Netflix clone with react , styled components and firebase with user authentication.........

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 1 Jan 3, 2022