diff --git a/Commands/pushDefaultValue.cjs b/Commands/pushDefaultValue.cjs new file mode 100644 index 0000000..cff2e96 --- /dev/null +++ b/Commands/pushDefaultValue.cjs @@ -0,0 +1,57 @@ +const { BaseCommand } = require('kurami'); +const { getFirestore, collection, addDoc } = require('firebase/firestore'); +const chartData = require('./../charts.json'); +const scoreData = require('../scores.cjs'); +const { initializeApp } = require("firebase/app"); + +class pushDefaultValue extends BaseCommand { + constructor() { + super({ + name: 'load:default:data', + description: 'Push some default charts and scores', + }); + } + + async run() { + const app = initializeApp({ + // firebase config here + }); + + console.log('Pushing default data...') + console.log('Pushing default charts...') + await this.pushDefaultCharts(); + console.log('Pushing default scores...') + await this.pushDefaultScores(); + console.log('Done!') + } + + async pushDefaultCharts() { + // push chartData content to firestore + const db = getFirestore(); + const chartsRef = collection(db, 'Chart'); + for (let i = 0; i < chartData.length; i++) { + const chart = chartData[i]; + await addDoc(chartsRef, chart).then((docRef) => { + console.log("Document written with ID: ", docRef.id); + }).catch((error) => { + console.error("Error adding document: ", error); + }); + } + } + + async pushDefaultScores() { + // push scoreData content to firestore + const db = getFirestore(); + const scoresRef = collection(db, 'Score'); + for (let i = 0; i < scoreData.length; i++) { + const score = scoreData[i]; + await addDoc(scoresRef, score).then((docRef) => { + console.log("Document written with ID: ", docRef.id); + }).catch((error) => { + console.error("Error adding document: ", error); + }); + } + } +} + +module.exports = pushDefaultValue; \ No newline at end of file diff --git a/README.md b/README.md index 61bd212..5a562a6 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,35 @@ + + + # MaiScore - A Maimai Score viewer +Welcome to MaiScore Project! + +## What is MaiScore? +MaiScore is a Maimai Score tracker. It can track your score and show you the score history. +You can look score form precise chart and precise difficulty. +All work manually, you need to post your score in the form linked to each chart. If some chart is missing, a feature to request a new chart is coming soon. + +## Set up local server +1. Install Node.js +2. Clone this repository +3. Run `npm install` in the repository +4. Configure your firebase information in 'src/config.js' and in 'Command/pushDeaultValue.cjs' +5. Use Kurami for run the command to push default value in firebase using 'npm run kurami load:default:data' +6. Run `npm run dev` to start local server + +## TODO +- Add a feature to request a new chart +- Edit admin part for beter design when adding new chart + +## Libraries +- [React](https://reactjs.org/) +- [Vite](https://vitejs.dev/) +- [Firebase](https://firebase.google.com/) +- [Tailwind CSS](https://tailwindcss.com/) +- [React Router](https://reactrouter.com/) +- [Kurami](https://github.com/nesmon/Kurami) + +## Disclaimer +This project is not affiliated with Sega or any of its subsidiaries. +The name "Maimai" and the logo are trademarks of Sega. -TODO : Write the readme \ No newline at end of file diff --git a/src/charts.json b/charts.json similarity index 86% rename from src/charts.json rename to charts.json index 3e7b687..5443d3a 100644 --- a/src/charts.json +++ b/charts.json @@ -1,8 +1,9 @@ [ { + "id": "axe611acu8", "name" : "Axeria", "artist": "AcuticNotes", - "category": "Original", + "category": "original", "difficulty" : [ { "Easy": "4", @@ -15,9 +16,10 @@ "imageCover": "https://silentblue.remywiki.com/images/d/d8/Axeria.png" }, { + "id": "our1110t+p8", "name" : "Our Wrenaly", "artist": "t+pazolite", - "category": "Original", + "category": "original", "difficulty" : [ { "Easy": "4", @@ -30,9 +32,10 @@ "imageCover": "https://silentblue.remywiki.com/images/0/05/Our_Wrenally.png" }, { + "id": "mil57mil4", "name" : "Milk", "artist": "モリモリあつし", - "category": "GAME & VARIETY", + "category": "game", "difficulty" : [ { "Easy": "1", @@ -45,9 +48,10 @@ "imageCover": "https://silentblue.remywiki.com/images/e/eb/MilK.png" }, { + "id": "pandora_paradoxxx", "name" : "Pandora Paradoxxx", "artist": "Sakuzyo", - "category": "Original", + "category": "original", "difficulty" : [ { "Easy": "6", diff --git a/index.html b/index.html index 79c4701..04dd590 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ -
{chart.title}
+{chart.artist}
+{chart.category && getCategory()}
++ Pseudo + | ++ Score + | ++ Accuracy + | ++ Rank + | +
---|---|---|---|
+ {item.pseudo} + | ++ {item.score} + | ++ {item.accuracy} + | ++ {item.rank} + | +
Hello world
++ Welcome to MaiScore, a website that allows you to view your score from Maimai. + You will be able to submit your score for each chart and see other score from other players. +
+