Course Blocks - First Post & Back End
I’ve been working on this project for almost two months, but this is my first submission to Utopian. 🙂
This is my second of three projects that I’ll complete as part of the full-stack flex curriculum at Thinkful.
Project Summary
I’m creating a site where anyone can create and enroll in courses for free. It will not require registration to view any of the courses, but an account will allow users to track their progress.
The first phase of the project will be built with HTML, CSS, JavaScript, jQuery, Node, and Mongo, and handed in as my second capstone project with Thinkful. After I finish the web development program in a few months, my plan is to completely rebuild the front end in React and then connect it to the Steem blockchain. Here is a video I made on DTube that explains my larger plans. The three main components are:
- a site to create and enroll in courses
- a community for each course that is either a forum or Stack Overflow style question and answer section
- a marketplace where students can find tutors for help with courses through video chat
I don’t have a timeline for the second two components, but I’d like to finish the first phase of the site (just to create and enroll in courses) this month.
Current Status
The first phase of the project isn’t ready to be released yet. I created the basic functionality for the front end, and just completed a pull request that added the basic functionality for the back end.
The GIF above gives a sense of what the front end is currently looking like. There is a home page to display and discover the courses, a course page where students can view the courses — a collapsible sidebar on the left shows the parts of the course, and the content is displayed in the center of the screen. The editor to create courses looks similar to the standard course page.
On the back end I used test-driven development with Mocha and Chai to add the necessary end points. I’m using Passport for authentication with JSON web tokens.
Next
Over the next week or so I’m planning on returning to the front end code. I’d like to create a site that’s pretty much fully functional on the front end (using local storage to mock up my database). There are several minor things that need to be tweaked before I hook up the back end. Here are some of the things that are currently on my list:
- activate log in and sign up forms and stub in all API calls
- fix DOM refresh on course draft save
- create listeners for Dragula to allow users to reorder courses
- add link in sidebar for course summary
- on smaller screens, close sidebar when link is clicked
- create user profile that lists all courses created or enrolled in
- alert when user attempts to navigate away from unsaved draft
- add preview and publish functionality/buttons to course creation screen
- a number of CSS tweaks
Feedback / Contributions
I’m currently in the process of learning web development full-time, so I’m very open to absolutely any suggestions or advice about my code. Feel free to leave a comment on this post or on Github. I’m getting pretty excited about this project and I want it to be as good as possible.
Thanks for reading! 🙂
Posted on Utopian.io - Rewarding Open Source Contributors
Thank you for the contribution. It has been approved.
You can contact us on Discord.
[utopian-moderator]
Thank you! 🙂
I am very interested in an instructional project on the Steem Blockchain.
I run disc dog freestyle and dog training classes on WP using Learndash. I've had a couple hundred people through them. I'm looking to do some dog training/dog sports stuff on the blockchain.
Please keep me in the loop.
peace~
Thanks for bringing Learndash to my attention -- looks really neat! That's awesome you've already been successful in your course creation efforts. I'm really hoping I can have my project live and connected to steem within a few months.
Thanks for reading! :D
It's a real nice system from an admin/instructor POV. Several question types and simple workflow.
Have you given much thought to instruction on the blockchain and what that means?
Is anyone doing pay to play access with Steem? Can you even do that?
You mean just having a system where people can pay STEEM for access? Yeah I definitely think that would be possible, but for me it's more exciting to take the angle of free courses where instructors and students can both earn money for upvotes. There are a ton of different directions it could be taken in though!
Repeated content? How would that work?
You mean how could students and teachers both earn from upvotes? Sorry I'm confused now too 😆
How would content work. Only vote-able for 7 days. Would you have static content and do discussion? Or would you generate new content weekly?
Do comments and discussion on old content pay out?
I'd love to chat about this. Any particular place you'd like to hang out sometime?
Jeff, you did it :) Congratulations to a great contribution.
Thank you for answering my questions before! Very excited it got accepted! 😀
Man, I am also work on project. I'ts SO hard(( It's took me monts to make basic stuff without a tutor or PRO programmer. I sometimes feel myself stupid((
It's definitely tough for me too >.<
That's awesome you're putting in the effort though! I think creating any project on your own is a big accomplishment. I would highly recommend freeCodeCamp if you're looking for a place to learn. And the community in the forum is really helpful/supportive. Good luck!
Do you have some programmers friends? Do they mostly use liblaries?(functions which were made before you, you only add them and they work, 80% copy paste)
I don't have any programmer friends in person, just some people that I've met online. I think pretty much everyone uses open source libraries to supplement their projects!
Great Step Jeff.
Glad to see you on Utopian. Your project sounds good to me. Move forward and share some more updates than I can give a proper suggestion based on your project.
Will do!
Can you please remove the banner at the bottom of the post, as we do not allow such banner in Utopian.io
Sorry about that! Just removed it.