Official Repository of Finite Loop Club website.

Overview

Finite Loop Club - Official Repo

Built with:

                             

Running the Project

  1. Clone the repo
git clone https://github.com/FiniteLoop-NMAMIT/flc-website
  1. Install the dependencies:
npm i
  1. Create & start a DB on postgres. Run Prisma migrations which will create SQL tables from schema.prisma
npx prisma migrate dev
  1. Create an .env file in the root directory and fill the essential vars
DATABASE_URL="..."
GOOGLE_CLIENT_ID="..."
GOOGLE_CLIENT_SECRET="..."
AUTH_SECRET="..."
RAZORPAY_KEY="..."
RAZORPAY_SECRET="..."
  1. Run the development server:
npm run dev

Open port 3000 on localhost with your browser to see the result.

Additional:

npx prisma studio

to use Prisma Studio(visual editor).

Open port 5555 on localhost with your browser.

Dependencies

    "@next-auth/prisma-adapter": "^1.0.4",
    "@prisma/client": "^4.2.1",
    "axios": "^0.27.2",
    "next": "12.2.5",
    "next-auth": "^4.10.3",
    "next-auth-sanity": "^1.4.4",
    "next-themes": "^0.2.1",
    "razorpay": "^2.8.3",
    "react": "18.2.0",
    "react-dom": "18.2.0",
    "react-icons": "^4.4.0",
    "react-reveal": "^1.2.2",
    "shortid": "^2.2.16"

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. While sending the PR please mention the issue in the Comment. Thank you.

Development

First, fork the project and clone it on your local machine. Follow the process given under this section to run and configure the project.

  1. Create a new branch
git checkout -b branch-name-here
  1. Make the appropriate changes for the issue you are trying to address or the feature that you want to add.
  2. Stage & commit the changes, and push them to your fork.
//Staging changes
git add insert-paths-of-changed-files-here
//Commiting changes
git commit -m "Insert a short message of the changes made here"
//Pushing changes
git push origin branch-name-here.
  1. From your branch that you are working on, give a PR to our develop branch. Title the pull request with a short description of the changes made and the issue or bug number associated with your change. In the description of the pull request, explain the changes that you made, any issues you think exist with the pull request you made, and any questions you have for the maintainer.

    !IMPORTANT: Don't give a PR to the main branch, we accept PRs only on develop branch.

  2. Wait for the pull request to be reviewed by a maintainer and make changes to the pull request if the reviewing maintainer recommends them.

Contributors

Comments
  • edit team name

    edit team name

    similar to edit profile modal, create a form modal to edit team name on /my-team page. this must be only allowed to team leads and not members. [this issue is dependent upon #4]

    good first issue help wanted 
    opened by nagarajpandith 1
  • display team & lead data

    display team & lead data

    an api is written on /api/read/teams to read team data, display the team details of a particular user to themselves on a page called /my-team

    details

    • create a schema for Lead
    model Lead {
      id     Int    @id
      user   User   @relation(fields: [userId], references: [id])
      team   Team   @relation(fields: [teamId], references: [id])
      userId String
      teamId Int
    }
    
    • create a page /my-team to read the team data(team name, lead and members) and show it to the user
    enhancement high-priority 
    opened by nagarajpandith 0
  • array social links for users

    array social links for users

    currently only single input is being taken, instead we need an array of social links for a particular user.

    tasks:

    • in the edit profile modal, allow user to add multiple social links, initially give a single text field with "+" button (generate a text field on click) and each new field has a "delete" button to delete that link it if user clicks it
    • once they submit store it on "links" which is a json object
    • display all of their links on frontend
    good first issue help wanted low-priority 
    opened by nagarajpandith 0
  • shareable public profile for all users

    shareable public profile for all users

    • for now the /profile page of only the user can be viewed by himself, so there needs to be such a page but public and can be viewed and shared by all.
    opened by nagarajpandith 0
  • display team score

    display team score

    • render team score data on /my-team page, can display it as a number counter which rolls up (ui improvements)
    • any other ui/ux improvements to /my-team page are welcome
    • this issue is dependent on #4
    good first issue 
    opened by nagarajpandith 0
  • leaderboard

    leaderboard

    • create a new public page /leaderboard accessible to all
    • add 'score' attribute to 'team' table schema
    • use the above api/read/teams to render a list of all the team names and their scores. [add more features on the go, discuss under this issue thread]
    • use case: motivation + creating competitive environment among teams
    enhancement help wanted medium-priority 
    opened by nagarajpandith 0
  • task user dashboard

    task user dashboard

    • create a new page /tasks for users to see a list of their tasks.
    • write an api on /api/read/tasks which returns the tasks assigned to the current logged in user's team
    • fetch the data from the above api and render a to-do list on /tasks page (task name, description, status -> checkbox) which can be viewed by the team members but the list can be ticked as 'completed' only by the team lead
    enhancement help wanted high-priority 
    opened by nagarajpandith 1
  • tasks admin dashboard

    tasks admin dashboard

    • create a new page /assign (protected route, only allowed to users with isAdmin=True on User table)
    • add a 'score' field to 'task' table (each task must have a score assigned)
    • render a form (task description, assigning to a team etc) which will update the 'task' table on db
    • use cases: to assign competitive coding questions, hackathon problem statements etc for scoring points

    [As this can be alternatively done on prisma studio, we will consider this as a low-priority issue until other high-priority ones get solved]

    enhancement help wanted low-priority 
    opened by nagarajpandith 1
  • profile update for user

    profile update for user

    • in the edit profile modal, currently we are allowing them to change only text fields like name, bio & links.
    • add a feature where they can change their profile photo. photo is being fetched from google and stored in "image" field on "User" table in db and this feature must allow them to modify that.
    • you can either store the uploaded images on a folder on public directory and serve it or make use of CDNs like cloudinary, imgur or more which can store the user image and return us the URL, research more on it and mention it in this issue discussion thread before starting to work on it
    enhancement help wanted medium-priority 
    opened by nagarajpandith 0
Owner
FiniteLoop Club NMAMIT
FiniteLoop Club NMAMIT
:loop: Create loopy loading animations

Sonic.js See some examples! Create your own with Sonic Creator! Sonic is a tool that you can use to create spinny-loady-thingies on the fly. It's best

James Padolsey 813 Nov 21, 2022
The culmination of Encode Academy, the 8-week long Solidity course by Encode Club in collaboration with Extropy

Encode Academy | DAO: Real Estate & Renting What is this? This is the culmination of Encode Academy, the 8-week long Solidity course by Encode Club in

Oliver H. D. 5 May 25, 2022
This is a tool to mint stoned ape club.

publicMintTool This is a public mint tool for https://etherscan.io/address/0x984f7b398d577c0adde08293a53ae9d3b6b7a5c5 All pubic mint tools should be c

null 194 Jan 5, 2023
shields.io for Hack Club Bank

Hack Club Bank shields.io Badges Easily show your Hack Club Bank organization's balance using shields.io badges! This repo contains the instructions f

Hack Club 8 Sep 25, 2022
A JSON/ICS represenation of the Hack Club Assemble Run of Show Google Sheet

Assemble Calendar Assemble's Run of Show was planned on a Google Sheet. It's amazing for large-scale planning and visualizing everyone's schedules. Ho

Hack Club 8 Sep 25, 2022
New base script bot wa by Ramdani Official, don't forget to subscribe youtube Ramdani Official.

Requirements • Installation • Thanks to • Official Group Bot • Donate Information bahasa Indonesia Ramdani Botz V17 adalah bot yang di ciptakan oleh R

Ramdani Official 22 Nov 1, 2022
Official repository for the Orbis SDK.

Build decentralized social apps with the Orbis SDK By using the Orbis SDK, developers can build their own decentralized social apps or add a decentral

Orbis 45 Dec 31, 2022
Official repository hosting the Runtipi App Store. Submit apps and updates here.

Tipi App Store ⛺️ This is the official repository for the Tipi App Store. It contains all the apps that are available for download on Tipi. Apps avail

Nicolas Meienberger 59 Jan 3, 2023
This is a cloned website of the official tesla page built with react js

TESLA-CLONE This is a cloned website of the official tesla page built with react js. The page has simillar sections which made duplicating these secti

Kevv_in 25 Nov 7, 2022
Official website for "Centre For Innovation, JGEC"

CFI JGEC Official website for "Centre For Innovation, JGEC" View Demo · Report Bug · Request Feature Table of Contents About The Project Built With Ge

Niloy Sikdar 9 Feb 15, 2022
SoftForge official website.

LogTure A minimal designed, fully customizable, and extensible modern personal blogging framework, built with Nextjs. Demo: https://logture.vercel.app

Sam Zhang 3 May 6, 2022
The official pokemon website is not that cool? Here is the alternative 😉

Pokemon Awesome Pokemon Data All Pokemon data used in this project comes from PokeAPI GraphQL Beta. Playground: https://beta.pokeapi.co/graphql/consol

Muhammad Afifudin 128 Dec 23, 2022
Jaime Gómez-Obregón 119 Dec 24, 2022
A minimal typing practice website with no features except typing. Inspired from Monkeytype. Do ⭐ this repository.

SenpaiType Introduction SenpaiType is a minimal typing practice website with no features except typing. Inspired from Monkeytype. Contributing Raise i

Pruthviraj Jadhav 5 Nov 30, 2022
Provides information on official divisional administrative regions of Portugal

GEO PT API Provides information on official divisional administrative regions of Portugal (based on "Carta Administrativa Oficial de Portugal, 2020",

João Pimentel Ferreira 75 Dec 27, 2022
official github mirror of gg-struggle

gg-struggle tl;dr gg-struggle is a program that reduces loading times by caching the Guilty Gear server responses, reducing slowdowns caused by latenc

cybermelon 28 Mar 12, 2022
official Alibaba Design system vue components snippets for visual studio code

Alibaba DLS Snippets for vscode Installation You can either install this extension by searching for Alibaba DLS Snippets in your vscode extensions sto

Alibaba Travels Co Open Source 2 Sep 25, 2021
A UI library by WeChat official design team, includes the most useful widgets/modules in mobile web applications.

WeUI - tailor-made for WeChat web service 中文版本 Introduction WeUI is an WeChat-like UI framework officially designed by the WeChat Design Team, tailor-

Tencent 26.6k Jan 2, 2023
Klecks is the official open-source release of the community-funded online painting app Kleki.

Klecks (German for "splash of color", pronounced "clex") is the official open-source release of the community-funded online painting app Kleki. Klecks

I paint, code and mess around. 74 Dec 27, 2022