Coder Social home page Coder Social logo

mitchellhenke / website Goto Github PK

View Code? Open in Web Editor NEW

This project forked from exercism/v2-website

0.0 3.0 0.0 6.2 MB

Exercism—Code practice and mentorship for everyone.

Home Page: https://exercism.io

License: GNU Affero General Public License v3.0

Ruby 61.80% JavaScript 0.55% CoffeeScript 0.58% CSS 20.16% HTML 16.92%

website's Introduction

Exercism website

Build Status Maintainability Test Coverage

Development setup

This is a Ruby on Rails (5.2) application backed by MySQL. There are two ways to run it locally:

  1. Setup a local development environment with the steps below.
  2. Use a pre-made Docker setup. We don't maintain an official Docker repo, but you can try this version kindly maintained by @unused.

Things to install

  • Ruby: We recommend Ruby >=2.4 (and this will soon become a requirement). We recommend using RVM
  • MySQL: MySQL >=5.7 required. Install via your system's package manager or follow the official Installation instructions
  • Yarn: Yarn handles front-end dependencies. See Yarn's installation instructions.

Configure the database

Something like this will then get a working database setup:

mysql -e "CREATE USER 'exercism_reboot'@'localhost' IDENTIFIED BY 'exercism_reboot'" -u root -p
mysql -e "create database exercism_reboot_development" -u root -p
mysql -e "create database exercism_reboot_test" -u root -p
mysql -e "ALTER DATABASE exercism_reboot_development CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" -u root -p
mysql -e "ALTER DATABASE exercism_reboot_test CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" -u root -p
mysql -e "GRANT ALL PRIVILEGES ON exercism_reboot_development.* TO 'exercism_reboot'@'localhost'" -u root -p
mysql -e "GRANT ALL PRIVILEGES ON exercism_reboot_test.* TO 'exercism_reboot'@'localhost'" -u root -p

Install Bundler

Bundle is used to handle the project's Ruby dependancies. You can install it via

gem install bundler

Initial setup

Firstly, you need to set a server identity, which you can do like this:

echo "host" > server_identity

Then we've put a rake task together that should set everything else up. You can run it like this:

bundle install
bundle exec rake exercism:setup

Running a webserver

To run a webserver, simple run:

bundle exec rails s

Something like this will get a working webserver on http://lvh.me:3000 Note: Teams will be avaliable on http://teams.lvh.me:3000

Notes

We recommend using lvh.me which is a DNS redirect to localhost, but which we honour cookies on.

Extra scripts and useful notes

Deleting an account

To delete a user, run user.destroy.

The user record is deleted, as well as associated objects except the ff:

  • Discussion posts where they are a mentor.
  • Maintainer records where their user record is associated.

Unlock first exercise for each user track

For when @iHiD breaks things.

user_track_ids.each do |id|
  ut = UserTrack.find(id)
  CreateSolution.(ut.user, ut.track.exercises.core.first) if ut.solutions.size == 0
end

Troubleshooting

MySQL < 5.7

The following error is seen using MySQL prior to version 5.7 as discussed at gogs/gogs#4894.

$ bundle exec rake exercism:setup
Mysql2::Error: Specified key was too long; max key length is 767 bytes:

If your system doesn't have a pre-built 5.7 package, this install log may be helpful.

Windows Subsystem For Linux

Installation on Windows Subsystem For Linux requires Windows Version 1809 (release due October 2018). Tracked at exercism/exercism#4346.

website's People

Contributors

ihid avatar kntsoriano avatar ccare avatar jackhughesweb avatar unused avatar patrickmcsweeny avatar amaliacardenas avatar tejasbubane avatar pacmancoder avatar loriking avatar cohen-carlisle avatar tushartyagi avatar bencoman avatar strickinato avatar yilkalargaw avatar leneko avatar budmc29 avatar zapanton avatar nickborromeo avatar average-user avatar jmhain avatar corroded avatar erikschierboom avatar dougal avatar insideoutclub avatar cmondorf avatar nottheeconomist avatar ruralocity avatar aldraco avatar

Watchers

James Cloos avatar Mitchell Henke avatar  avatar

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.