A simple scholar management app that helps owners manage their scholars.

Overview

axiefy

An open-source software that aims to help primarily on NFT Game Managers of Axie Infinity in order for them to conveniently manage and track their scholars, while also being an entry to Supabase's 2nd Hackathon "Supabase Hacktoberfest Hackathon 2021". We are also interested in building features not only suitable for Managers, but for the player base as a whole (e.g like Breeding). Currently the App enables manager to invite their Scholars to the app (making it so that the scholars are the one inputing their ronin address) and oversee their performance like total SLP farmed and PVP Rankings

Axie Infinity

Axie Infinity is a Pokémon-inspired universe where anyone can earn tokens through skilled gameplay and contributions to the ecosystem. Players can battle, collect, raise, and build a land-based kingdom for their pets. (https://whitepaper.axieinfinity.com/)

Motivation/Ideas

On our brain storming phase, we aim to build an app that has both Web2 and Web3 element inside it. However, we couldn't seem to think of anything at that time until we thought about building an App within Axie Infinity ecosystem, since it is one of the most popular blockchain related game in the Web3 environment. But we couldn't find any docs regarding Ronin Wallet, which is an Ethereum side chain governing Axie Ecosystem. Thus for now, we are only creating an app focuses on giving convenience to the interactions between Managers and their Scholars.

Demo

App: https://axiefy.vercel.app/

Credentials:

Screenshots

Screenshot_380

image

image

Supabase Hacktoberfest 2021 Team Members

Submitted on "Made with Supabase"

Supabase Usage

  • Supabase Serverless Database: Used for storing data
  • Supabase Authentication: Used authentication, magic link, email and password, and OAuth 2.0 providers
  • Supabase Storage: Used storage for photo uploads
  • Supabase Functions & Triggers
  • Postgres or Supabase feature?: Used RLS to prevent unauthorized actions (Current there's a bug we can't figure out in the given time 🐞 )

Setup Development Environment

Copy .env.example file

$ cp .env.example .env

Open file .env and put key and secret

SUPABASE_KEY=<SUPABASE_KEY>
SUPABASE_URL=<SUPABASE_URL>

Install dependencies

npm i

Run dev server

npm run dev

Contributing

Be in main branch

$ git checkout main

Branch out from main by the following command

$ git checkout -b <your-branch-name> # git checkout -b feature/some-cool-feature

Then push upstream the latest branch

$ git push -u origin <your-branch-name> # git push -u origin feature/some-cool-feature

You can then stage all your changes

$ git add .

And push them to the branch you created

$ git push

And finally, create a Pull Request from the repository.

Switch back to main branch or any branch you desire.

$ git checkout main # git checkout <branch-name>

Build Setup

# install dependencies
$ npm install

# serve with hot reload at localhost:3000
$ npm run dev

# build for production and launch server
$ npm run build
$ npm run start

# generate static project
$ npm run generate

For detailed explanation on how things work, check out the documentation.

Special Directories

You can create the following extra directories, some of which have special behaviors. Only pages is required; you can delete them if you don't want to use their functionality.

assets

The assets directory contains your uncompiled assets such as Stylus or Sass files, images, or fonts.

More information about the usage of this directory in the documentation.

components

The components directory contains your Vue.js components. Components make up the different parts of your page and can be reused and imported into your pages, layouts and even other components.

More information about the usage of this directory in the documentation.

layouts

Layouts are a great help when you want to change the look and feel of your Nuxt app, whether you want to include a sidebar or have distinct layouts for mobile and desktop.

More information about the usage of this directory in the documentation.

pages

This directory contains your application views and routes. Nuxt will read all the *.vue files inside this directory and setup Vue Router automatically.

More information about the usage of this directory in the documentation.

plugins

The plugins directory contains JavaScript plugins that you want to run before instantiating the root Vue.js Application. This is the place to add Vue plugins and to inject functions or constants. Every time you need to use Vue.use(), you should create a file in plugins/ and add its path to plugins in nuxt.config.js.

More information about the usage of this directory in the documentation.

static

This directory contains your static files. Each file inside this directory is mapped to /.

Example: /static/robots.txt is mapped as /robots.txt.

More information about the usage of this directory in the documentation.

store

This directory contains your Vuex store files. Creating a file in this directory automatically activates Vuex.

More information about the usage of this directory in the documentation.

Contributors

Thanks for all these wonderful people.

Acknowledgements

No one here yet. Want your name to be added? Hit me up! We probably need some cool logo. 😉

Author

Issues
  • Feature/dashboard view

    Feature/dashboard view

    Hi Dy <3

    opened by sushiAlii 1
  • Feature/dashboarding

    Feature/dashboarding

    null

    opened by sushiAlii 1
  • Refactor/dashboard

    Refactor/dashboard

    null

    opened by sushiAlii 1
  • Feature/dashboarding

    Feature/dashboarding

    null

    opened by sushiAlii 1
  • Feature/troll users

    Feature/troll users

    null

    opened by sushiAlii 1
  • Fixed Axies not showing on cards

    Fixed Axies not showing on cards

    null

    opened by sushiAlii 1
  • Feature/dashboarding

    Feature/dashboarding

    null

    opened by sushiAlii 1
  • Create LICENSE

    Create LICENSE

    null

    opened by carlomigueldy 1
  • Added more description on README.md

    Added more description on README.md

    null

    opened by carlomigueldy 1
  • trigger bug on create new public user

    trigger bug on create new public user

    Expected

    When a new user is created by signing up by any method, then they are known to be as "manager" so a trigger function will attach a role to them.

    While an invited user is known to be a "scholar", so we check on auth.users if the invited_at attribute is not NULL. If it is not NULL then we can confirm they are a scholar and belongs to that manager who invited them.

    Details

    I wrote a trigger function listening to insertions for auth.users table

    -- trigger: handle new registered user
    CREATE OR REPLACE FUNCTION public.handle_new_auth_user()
    RETURNS TRIGGER AS $$
    BEGIN 
      INSERT INTO public.users (id, email) VALUES (new.id::UUID, new.email::TEXT);
    
      return new;
    END
    $$
    LANGUAGE plpgsql SECURITY DEFINER;
    
    CREATE TRIGGER on_auth_user_created
    AFTER INSERT ON auth.users
    FOR EACH ROW
    EXECUTE PROCEDURE public.handle_new_auth_user();
    

    This works.

    But this doesn't work and keeps returning status 500 every time a new user creates an account.

    -- trigger: handle new public user created by auth.users trigger
    CREATE OR REPLACE FUNCTION public.handle_new_user()
    RETURNS TRIGGER AS $$
    BEGIN 
      INSERT INTO public.teams (owner_id) VALUES (new.id::UUID); 
    
      -- todo: needs to get fixed
      -- scholar
      IF EXISTS(SELECT id FROM auth.users WHERE id = new.id AND invited_at IS NOT NULL) THEN
        INSERT INTO public.user_role (user_id, role_id) VALUES (
          new.id::UUID, 
          (SELECT id FROM public.roles WHERE name = 'scholar' LIMIT 1)::UUID
        );
      END IF;
    
      -- manager
      IF EXISTS(SELECT id FROM auth.users WHERE id = new.id AND invited_at IS NULL) THEN
        INSERT INTO public.user_role (user_id, role_id) VALUES (
          new.id::UUID, 
          (SELECT id FROM public.roles WHERE name = 'manager' LIMIT 1)::UUID
        );
        INSERT INTO public.teams (owner_id) VALUES (new.id::UUID); 
      END IF;
    
      return new;
    END
    $$
    LANGUAGE plpgsql SECURITY DEFINER;
    
    bug 
    opened by carlomigueldy 0
Owner
Carlo Miguel Dy
Software Engineer
Carlo Miguel Dy
A vue boiler plate with state management, vuex, vue-router that can be backed by a laravel restful api using jwt auth

Laravel 6 (LTS) Vue.js Frontend Boilerplate A Vue.js Frontend starter project kit template/boilerplate with Laravel 6 Backend API support. Features Re

MUWONGE HASSAN 2 Oct 12, 2021
URL shortener / redirection service powered by Supabase, Cloudflare Workers and Cloudflare Pages.

Launch your own personal URL shortener / redirection service using free tiers of Supabase, Cloudflare Workers and Cloudflare Pages. Features Redirecti

Supaflare 4 Oct 13, 2021
A vue component of scrollbar

vue-scrollbar-simple Introduction vue-scrollbar-simple is a vue component of scrollbar Install $ npm install vue-scrollbar-simple --save Usage impo

Zhi Xiong 3 Oct 1, 2021
A managed scroller to dynamically load items

vue-managed-scroller View live demo in sandbox Installation npm install --save vue-managed-scroller or if you prefer yarn yarn add vue-managed-scroll

Justin Levine 16 Jul 21, 2021
Vue3.0 无缝滚动组件

vue3-seamless-scroll Vue3.0 无缝滚动组件 目前组件支持上下左右无缝滚动,单步滚动,并且支持复杂图标的无缝滚动,组件支持原生 css3动画 滚动,目前组件支持平台与Vue3.0支持平台一致。 效果展示 安装 npm npm install vue3-seamless-scr

null 15 Oct 7, 2021
The virtual responsive crossbrowser scrollbar component for VueJS 2x

VBar The virtual responsive crossbrowser scrollbar component for VueJS 2x DEMO Usage Install Using NPM npm i v-bar Using yarn yarn add v-bar In your .

Luigui Delyer 222 Oct 2, 2021
Handy floating scrollbar component for Vue 3

vue-handy-scroll Handy floating scrollbar component for Vue 3. Synopsis vue-handy-scroll is a component that solves the problem of scrolling lengthy c

null 6 Oct 2, 2021
A simple scroll picker plugin for Vue 3

vue3-scroll-picker Vue 3 scroll picker plugin. Demo Demo Demo Code Install yarn add vue3-scroll-picker npm i --save vue3-scroll-picker Register Global

HJ 13 Sep 10, 2021
vue-check-view - A plugin that checks if element is in viewport. Fast, small, has no dependencies, live demo.

Check if element is in viewport. Vue.js 2 plugin with SSR support without dependencies. DEMO Simple plugin that checks element position on the screen

Vasily Timofeev 108 Sep 23, 2021
:beginner:A simple, seamless scrolling for Vue.js vue无缝滚动component

vue-seamless-scroll A simple, Seamless scrolling for Vue.js Features Initial configuration support Compatible with multiple platforms Multi-technology

sos 1.3k Oct 12, 2021
A plugin that checks if element is in viewport

Check if element is in viewport. Vue.js 2 plugin with SSR support without dependencies. DEMO Simple plugin that checks element position on the screen

Vasily Timofeev 108 Sep 23, 2021
Vue.js wrapper for perfect scrollbar

vue2-perfect-scrollbar Vue.js minimalistic but powerful wrapper for perfect scrollbar Are you looking compatible version with Vue3 ? check https://git

Adam 247 Oct 11, 2021
Adds a directive that listens for click events and scrolls to elements.

vue-scrollto DEMO Scrolling to elements was never this easy! This is for vue 2.x and vue 3.x (since v2.19.0) For vue 1.x use [email protected] (note

Igor Randjelovic 1.8k Oct 13, 2021
Bring your scroll game to the next level!

VueNextLevelScroll - Bring your scroll game to the next level! "Click to scroll" component using the modern Browser API. ?? Features Just one tiny fil

Developmint GbR 49 Mar 2, 2021
Lightweight package for highlighting menu items as you scroll the page, also scrolling to target section when item clicked. Use as a vue component/directive or in vanilla js.

navscroll-js Installation This package is available on npm. Using npm: npm install --save navscroll Using yarn: yarn add navscroll Directly include it

Honoré Nintunze 52 Aug 12, 2021
Infinite scroll component compatible with vuejs-3 and vitejs

Intro An infinite scroll component compatible with vue.js 3 and vite, to help you implement an infinite scroll list more easily. Features Lightweight

abdelouahed oumoussa 6 Oct 4, 2021
Vue.js wrapper for perfect scrollbar

vue2-perfect-scrollbar Vue.js minimalistic but powerful wrapper for perfect scrollbar Are you looking compatible version with Vue3 ? check https://git

Adam 247 Oct 11, 2021
Wrapper to use the awesome scrollMonitor with [email protected]

VueScrollmonitor Handle scroll events like a boss Wrapper to use the awesome scrollMonitor with [email protected] To know more : https://github.com/stutrek/sc

Alexandre Bonaventure Geissmann 44 May 7, 2021
trigger functions and events based on the element position on the screen

VueWaypoint trigger functions and events based on the element position on the screen Demo Simple demo page Open your browser console and see what's go

Marco 'Gatto' Boffo 393 Sep 28, 2021