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.
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!
- React
- Gatsby
- Bulma
-
Clone the repo
git clone https://github.com/godith0/eureka-moment.git
-
Start developing.
Navigate into your new site’s directory and start it up:
cd eureka-moment/ npm install gatsby develop
-
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 editsrc/pages/index.js
. Save your changes and the browser will update in real time! -
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.