Skip to content

franz-dc/beyond-ys

Repository files navigation

Beyond Ys logo

Beyond Ys

A fan website dedicated to Nihon Falcom's works. You can find information about Falcom's games, characters, music, staff, and more!

Website

You can visit the site here.

Features

  • Music player: Listen to your favorite Falcom music while browsing the site.
  • Detailed credits: Know who worked on specific works and music.
  • Themes: Choose between light and dark theme (defaults to dark).
  • Editable content (WIP): Manage content through the editor.

Technologies Used

  • Next.js: React framework for server-side rendering, static site generation, and incremental static regeneration.
  • Firebase: Comprehensive development platform providing authentication, real-time database, etc.
  • Material UI (MUI): React UI library for building responsive web applications.
  • Vercel: Cloud platform for static sites and serverless functions.

Content Progress

Check out the project's progress regarding content here.

Getting Started

Prerequisites

Installation

  1. Clone the repository:

    git clone https://github.com/franz-dc/beyond-ys.git
  2. Install dependencies:

    npm i
    # or
    yarn
  3. Create .env.local by copying .env and replace the values with your own:

    cp .env .env.local
  4. Set up your Firebase project or Firebase Local Emulator Suite.

    a. Firebase Project

    1. Make sure that NEXT_PUBLIC_USE_FIREBASE_EMULATOR is set to false in .env.local.

    2. Optional: Set USE_EMPTY_STATIC_PATHS to true in .env.local. This is recommended if you're using a free Firebase plan to avoid exceeding the free quota.

    3. Create a service account key and download the generated JSON file.

    4. Update the values of FIREBASE_ADMIN_PRIVATE_KEY and FIREBASE_ADMIN_CLIENT_EMAIL in .env.local with the values from the JSON file.

    5. Make your storage bucket publicly readable. For more information, see this.

    b. Firebase Local Emulator Suite

    1. Make sure that NEXT_PUBLIC_USE_FIREBASE_EMULATOR is set to true in .env.local.

    2. Enable the following services in your Firebase project:

      • Authentication
      • Firestore
      • Storage
    3. Update Firestore emulator variables in .env.local if necessary. This is only needed if you're using a different host or port.

    4. Run the following commands on your local Firebase directory to start the emulators:

      First time:

      firebase emulators:start --export-on-exit=./emulator-data

      Subsequent times:

      firebase emulators:start --import=./emulator-data --export-on-exit=./emulator-data

      This is needed to persist the data in the emulator and avoid having to reseed the database every time you restart the emulator.

  5. Run this command to seed the database with sample data*:

    npm run seed
    # or
    yarn seed
  6. Run the development server:

    npm run dev
    # or
    yarn dev
  7. Open localhost:9000 on your browser.

* Only canon Ys games are seeded (with some of their characters, music, and staff).

Contributing

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Make your changes and ensure they're properly tested.
  4. Commit your changes and push them to your forked repository.
  5. Submit a pull request, explaining the changes you've made.

License

This project is licensed under the MIT License.

Releases

No releases published

Packages

No packages published