Skip to content

Website teaching the basics of C++ through small projects

License

Notifications You must be signed in to change notification settings

brandonkachen/eureka-moment

Repository files navigation

Eureka Moment

Website: Eureka Moment. Written in React using GatsbyJS and Bulma CSS, hosted on Firebase.

This was a short experiment in building an online C++ "textbook". The idea was for students to learn C++ by writing small apps in the language, tackling new concepts as they progressed. I developed lessons that built upon one another and naturally surfaced new topics when the student discovered a need for them. For example, Lesson 3 teaches students how to build a multi-dimensional array. As the student becomes familiar with this concept, they discover what pointers are and how they enable multi-dimensional arrays to work.

My mentee (the site's primary user) had to terminate the experiment after the third lesson for reasons unrelated to the project, but building it has taught me a lot about the work and planning that goes into making a textbook.

Poking Around

If you want to check out the live site, go to the login page and log in with the following credentials:

username: [email protected]
password: testing123

Then visit the lessons page to try it out!

Requirements

  • React
  • Gatsby
  • Bulma

🚀 Quick start

  1. Clone the repo

    git clone https://github.com/godith0/eureka-moment.git
  2. Start developing.

    Navigate into your new site’s directory and start it up:

    cd eureka-moment/
    npm install
    gatsby develop
  3. Open the source code and start editing!

    Your site is now running at http://localhost:8000!

    Note: You'll also see a second link: http://localhost:8000/___graphql. This is a tool you can use to experiment with querying your data. Learn more about using this tool in the Gatsby tutorial.

    Open the eureka-moment directory in your code editor of choice and edit src/pages/index.js. Save your changes and the browser will update in real time!

  4. Set up Firebase

    Set up a Firebase app to handle your db. You can find instructions here, but skip the step for initializing Firebase (Step 3 at the time of this writing) because that's already handled by the codebase. For your app's config do the following:

    cp .env.sample .env.production  # can also do .env.development
    vi .env.production  # or your favorite code editor

    Then manually update the values in your newly created file.

About

Website teaching the basics of C++ through small projects

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published