Git Product home page Git Product logo

helixstudio / helix Goto Github PK

View Code? Open in Web Editor NEW
10.0 2.0 4.0 3.47 MB

A modern platform for competitive programming.

Home Page: https://helix-coding.vercel.app

License: Other

TypeScript 98.16% JavaScript 0.67% CSS 0.62% Shell 0.20% Dockerfile 0.35%
coding competitive-programming gnu huggingface learning open-source social-media social-network typescript website serverless tailwindcss next13 nextjs t3 t3-stack ctf-challenges ctf contests javascript

helix's Introduction

Helix ๐Ÿ‘จโ€๐Ÿ’ป

Helix is an open-source website to help you learn & practice programming.

InfoEducatie 2023: Documentatie

Required dependencies

Besides the specified node packages, you need to have the following software to host the frontend:

  • git (any version)
  • nodejs >= 16

The code execution engine is also part of this project. It is used to run the submitted code.

How to run

Firstly, clone the repository:

git clone https://github.com/NikolaTesla13/helix.git

Go to the newly created directory:

cd helix

You can use any nodejs package manager to manage the dependencies (such as npm, yarn or pnpm). During development, npm was used:

# install required packages
npm install

Provide the required environment variables in a .env file, refer to the .env.example file for example usage:

NODE_ENV="development"

NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET=""

DATABASE_URL=""

UPLOADTHING_SECRET=""
UPLOADTHING_APP_ID=""

HUGGINGFACE_API_KEY=""

DISCORD_CLIENT_ID=""
DISCORD_CLIENT_SECRET=""

GITHUB_CLIENT_ID=""
GITHUB_CLIENT_SECRET=""

GOOGLE_CLIENT_ID=""
GOOGLE_CLIENT_SECRET=""

TWITTER_CLIENT_ID=""
TWITTER_CLIENT_SECRET=""

And now you can start the services:

# starts frontend on localhost:3000
npm run dev

# starts the prisma studio on localhost:5555
npx prisma studio

# starts the storybook testing server on localhost:6006
npm run storybook

Most common errors when running the frontend:

  • database connection error: check your connection url and if the db is up and running
  • dependencies error: check if a node_modules was created with the required libraries
  • backend not running: note that some features require the backend server to be running
  • feel free to open a new issue if you have discovered a bug

helix's People

Contributors

michaelradu avatar stefanasandei avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

helix's Issues

Forum tag filter and User Schema changes - Support medium

We should add a more obvious drop-down menu tag-filter like reddit so that the forum may be used as a support platform during the contest. Each user will make posts tagged with their group.

Groups

  • SupportCTF
  • SupportALGO
  • SupportTIC

Another important thing could be a ping system for @admins or @helixteam or @BitByBitTeam or @HelixDevs (?)

Notifications for friend requests and DMs (if we implement them in a future update) would be needed anyways so maybe add this to the notification system?

MAJOR REWORK: Language Switch

Language Explanations:

  • (?) = Maybe do it, not sure.

Why?

We are a Romanian platform trying to replace already existing_Romanian_ platforms. Teachers do not know English as well as Students and even some Algo Olympic students have poor English skills sadly.

The Solution

Add a Romanian language switch to the website.

  • It should be one of the first things seen when entering the website, much like CubaVodka's award winning website.
  • (?) Move the entirety of the website's text into EN.json and RO.json so we can easily translate and switch over. From my experience pre-uni professors rarely know proper English!

Add more educational content

  • Number of registered/active users needs a small section on the home page

  • Educational blog posts filtered by tags in an easier fashion via a drop-down menu

  • Big section for Tips and Tricks in a "slideshow" like fashion or a nicer animation as if it is written onto the page and glitching out

  • Courses (links to articles, maybe to our sponsors')

Contest & Problem section + User Schema revamp

TODO

Language guide:

  • (?) = Not sure, maybe do this.

Problem adding interface

  • Problems should have tags, including programming language tags and written language tags

  • They can be written either in Romanian, English or both, in which case the user can choose through a top-left button the preferred language

  • The problem interface already is similar to Leetcode so this should be easy to implement
    User ranks:

  • Member

    • (In itself in the future it will have subranks based on solved problems, different from any other ranking system so far, we'll have a chat later about this, it's what I wanted to implement in my own platform).
    • View, Search and solve problems and participate in contests.
  • Problem Writer

    • This rank should be able to add problems through a UI. The problems are then staged and verified by us or an LLM model that removes obscenities and rewrites the problem with the same context or a nicer one. Easy to do.
    • (?) Possibly organize contests like on Codeforces
  • Moderator

    • BitByBit Contest help desk if needed, removes obscenities manually, (?) disqualifies users if cheating is involved.
    • No access high enough to destroy the platform, but high enough to decide whether users need to be on a timeout due to obscenities.
  • HelixDev

    • Our ranks, nothing more than a decorative badge and maybe some custom-looking user profiles, we have the same permissions as all ranks below us.
    • Highest rank there is, obtained only through contributing quality code to the project.

Landing Page - For Educators, For Students, For Companies

The blog page will just be a like the forum with a different UI, we just fetch the #Helix posts from there.

Each page will have targeted advertisement towards them.

  • Educators page will have a big language design in the background like Codewars and possibly some hello world mini editor problems like the old Codeforces so they can test the Exec engine.
  • Students will have just the old Codewars landing page so they play with the exec engine and then make an account.
  • Companies will have a Leetcode like page + a mini exec engine test like the old Codewars

None of these scrap what we already have, we're just adding more content to it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.