Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Python

Flask, Build Social Network, Tacocat Challenge

The link to the challenge:

http://teamtreehouse.com/library/build-a-social-network-with-flask/tacocat-challenge/tacocat

Challenge Task 1 of 1

Fill out the files with your finished code to pass the code challenge.

Of course this tells you nothing about what is expected...


However here's few excerpts from the video immediately preceding the challenge (with my own comments added):

I've put more details into a readme file in the workspace, to spell out all of the nitty-gritty details.

Note: These are nitty gritty DESIGN details NOT any coding hints.

*** See below though for a special windows program to open this .md formatted file

I want you to know up front that this is going to be a lot of work.

I've already spend dozens and dozens of hours on this course and haven't even gotten through all the challenges up to this point, so this is really a huge (humongous) understatement.

But if you make it through...

Notice the word "if" not "when"...

I guess the old phrase "confidence is high" does not apply in this case...

...let's talk about what all is involved in this, cuz this is, this is different. We haven't done this before. I know that this is a brand new way of doing a code challenge, and a much bigger code challenge than you normally do.

This feels to me as if Kenneth is saying:

It's not enough that I go out of my way to make my Treehouse courses normally extra hard, however now I'm shooting for the moon in making a Treehouse courses that not only is S000000OOOOOO much harder than any other Treehouse course ever designed, but basically requires someone who is (already) a both a master Flask developer in addition to being an expert in Python coding.


Where to start?

*** First you have to find the right program to open the 'readme.md' file in the course's zip download.

The ".md" file extension means it's in "markdown text" not ASCII text or rich text format, so if you are running windows I recommend the markdown pad program:

http://markdownpad.com/

...over notepad, wordpad, and MsWord)

I must say again though -- the contents off the file give NO technical details on what code is expected for the output files.

Bummer (truly)! :thumbsdown:

Thus one is forced to try and follow along with the confusing video that preceeds this challenge, which barely (at best) outlines a tedious and time consuming repetitive set of highly technical QA testing type tasks.


Does this kind of thing really interest anyone out there?

Does anyone out there really have that much time to spare to tackle this challenge?


If so, (and you do a search of the forum for 'tacocat' or 'tacocat.py', searching for some sensible strategy to somehow make it through this challenge), I hope you will post something that gives clueless people (like me) some insight about how to go about it.

Call me lazy, but anything to shortcut the tediousness of what is involved would be appreciated.

Thanks in advance for any code development hints.

7 Answers

Dave McFarland
STAFF
Dave McFarland
Treehouse Teacher

Hi james white

Sorry for the frustration with this Code Challenge. This last step in the course is really meant to test everything you've learned in Python and Flask up to this point, so it's definitely difficult. You need to not only understand the concepts from this course, but also the previous Flask and Python courses.

As Kenneth talks about in the Tacocat Challenge video, you'll be using a Python testing framework to test your code. Most programming languages include testing frameworks which help professional developers produce high quality code, free from bugs (as much as possible :). Python includes a built-in unit-testing framework, which Kenneth is using in this code challenge. Doing this code challenge will get students familiar with testing frameworks -- a necessary job skill in many companies.

I recommend following Kenneth's suggestion of using Workspaces to solve the programming part of this challenge first. Then once you have code that passes all of the tests, just copy that code and paste it into the Code Challenge. Using Workspaces lets you build up the programming piece by piece, passing one test at a time (you can also open the markdown file in Workspaces or any text editor, for that matter). Kenneth shows how to run your code against the tests in his video.

The other videos in this course give you the directions you need to pass the various tests. For example, the "Passwords are hashed" test, will require you to use the instruction from the Cryptographic Hashing with Flask-Bcrypt.

I found this course very helpful. Handling user sessions, creating queries with ORM, handling 404, and pretty much creating a model for a social media that you can integrate with any of your projects. I honestly think that the last challenge is a little bit though. But come on guys, you are studying Computer Science, what do you expect? If you want to make a difference, you really have to work hard. In this course Kenneth Love handed you a lot of tools that you have to implement. A few months ago, before I watched this course, I created a little inventory manager for my mom's business. I watched the Peewee course, but I really didn't get the point of it, so I was pretty much writing PURE SQL QUERIES. And if you call this course, though, I invite you to do it like me, on your own hehehehe. I learned the hard way. That project took me a few long weeks, but with what I learned from this course, I can do it in a day to two days without a lot efforts, and without testing of course :D. And lastly, I implemented a login manger myself, and I know it wasn't very secured, but I did anyways. The thing is that after I watch Kenneth using the flask-login library I was shocked how easy is to handle users sessions with this tool.

In overall, I personally think that this course was great. I learned a lot, and yes, I disagree with a few answers here, but of course I respect it.

Sincerely, -Dan

I have generally not found the Treehouse Workspace be very much help at all. Especially so with this challenge.

As to your other recommendation:

Most of the 6:50 seconds of the 'instruction' from the "Cryptographic Hashing with Flask-Bcrypt" consists of just watching commands being typed in the console.

I gained little (if any) insight as what was going on with the coding in models.py.

It really just left me frustrated and dis-empowered. Much like this whole course.

Hopefully someone else (not on the Treehouse staff) will post with a more helpful response.

Well, I've completed the whole course except for the Tacocat challenge,

gaining 384 of 485 points.

--So the Tacocat challenge by itself is worth over a hundred points!


Thankfully Kenneth has finally updated the challenge question with:

Be sure to remove any app.run() calls.

Otherwise, of course, you'll end up getting:

Bummer! Your code took too long to run

Currently there are only two forum threads for the Tacocat challenge (besides this one):

https://teamtreehouse.com/forum/stage:5612

However I will keep monitoring in the future for more related posts/threads..

Aaron Lenhart
seal-mask
.a{fill-rule:evenodd;}techdegree seal-36
Aaron Lenhart
Python Development Techdegree Graduate 21,282 Points

I feel yeah James, I also feel the same way. It just like watching someone type at 150 wpm with no explanation and a ton of code challenges. Being so close to the end is the only reason I am not quitting but I feel like Team Treehouse needs to rework this certification.

I usually bring up my Treehouse profile at least once a day to see if I have any ugly red icon notifications pending, and I usually also use the green arrow icon (rather than bring up the Treehouse main site page which takes forever to load when I'm signed in because of the nag-athon "dashboarding" they recently introduced).

Since I've complete all the Treehouse courses except for the Python Social Flask course it only listed one pending/resume:

The final challenge (the Tacocat challenge that this thread is all about)

Here's the thing, though..it says the TacoCat challenge should take 3 minutes to complete.

Don't believe me? I'll post a screenshot to Imgur:

alt text

I wonder how they calculated that?

Maybe someone should tell Kenneth it's not that challenging after all... alt text

Kenneth Love
Kenneth Love
Treehouse Guest Teacher

It's based on the number of steps in the code challenge. Since the code challenge only has one step, it only takes three minutes, according to our very generic calculation.

Yea, I'm generally unsatisfied with this course as well. As I followed along to the videos i never really felt like I fully understood what I was doing and why. The readme file sent along with the workspace is...somewhat less than helpful. It tells you what the challenge expects of you but thats about it. Running app_test.py gives me a lot of text to look at, most of which I don't know how to interpret.

If you ask a question and get a staff response, its usually to tell you to go rewatch some video, so I'm not going to even bother asking for help. When I get it figured out I'll post it up, or perhaps I should say if.

Kenneth Love
Kenneth Love
Treehouse Guest Teacher

Hey @joewode, sorry you're disappointed with the course. Is it the course or just this final challenge? I know it's harder and out-of-the-ordinary, but it really does represent work I've been asked to do by professional clients in the past, including the somewhat vague README. Let me know the specific pieces that you feel are giving you the most trouble and I'll be happy to try and help you (and future students) through them.

So this is what we can expect when we get out into the industry? Great...

I've had trouble with the whole course, mostly due to workspaces being wonky/buggy. Though I have to admit I spent much of the course feeling like I was typing stuff out without really understanding what I was doing exactly.

Anyway, I guess the biggest problem I have with it right now is trying to interpret the results I get back from app_test.py. Most of it is gibberish to me so i can't really use it to figure out what I've done wrong or how to fix it. This challenge should have had a video showing us how to use this new tool to figure out how to fix our code, as it is its just confusing.

All it really ends up telling me is that I need to change something, but rarely gives me any idea of what specifically. In the end I'm making mostly random changes just to see what the app_test spits out differently, and hoping this will give me a better idea of what I should be doing to pass each test. Also, it gives zero info on the tests i do pass, or even which ones I have passed(this can be figured out but it takes a min).

As it stands now I'm passing four tests, failing 2, and getting errors on the rest. The tests that end in errors give long lists of what appear to be file locations, and i don't really know what to do with that information.

Then again I'm still missing a significant portion of code, and I haven't toched the html bits yet, so I'm not really surprised that it doesn't work yet. I just started messing with it today, though, so I think I should try to tackle it a bit more on my own before asking for your help. I need to rewatch some of the videos anyway, and review my code on the social network project. If I'm still having a lot of trouble a few days from now, I'll make a seperate post. Thanks, ken.

BTW, are there any new python courses coming down the pipe?

Hi Daniel,

I respect you opinion (and I'm glad you got something out of the course)

I honestly think that the last challenge is a little bit though.

.

..but respectfully I have to take exception to what you said.

But come on guys, you are studying Computer Science, what do you expect?

.

Personally I expect that Instructor Love will follow the same standards and protocols

that the other TeamTreehouse instructors are using.

Which [IMHO] he definitely does not.


And now (obviously not learning the "lesson" of the TacoCat challenge),

he has come out with a Django "Basics" course:

http://teamtreehouse.com/library/django-basics

...whose final "Django TDD" asks for something that no other Treehouse instructor would ask.


Don't believe me?

Look at the final video for the course (at min 00:30) where he verbal "sets up"

the students for the final challenge:

https://teamtreehouse.com/library/django-basics/test-time/congratulations

It's where Kenneth even says/admits:

This one's a little different than most of the one's you've done at Treehouse, though.

.

NO --it's actually a lot different!


Can you imagine what would happen to a coder that wouldn't follow

what all the other coders on his company's Agile/Scrum team were doing?

Said coder wouldn't last too long at that company.

Ben Jakuben
Ben Jakuben
Treehouse Teacher

Hey James! While I'm sorry that you aren't happy with this code challenge, I just want to chime in from a team perspective to say that we actively and intentionally try different ways of challenging and assessing students to learn how to improve what we're doing. You're right that this challenge is different and harder than any other I can think of on our site, but it's to give some real-world practice and an opportunity to practice something that's potentially a great learning experience. We have guidelines for teachers to stay roughly similar in style and approach but encourage this kind of innovation!

We definitely want to hear feedback about what works and what doesn't and will always take that into account. We have set aside explicit time recently to improve low-rated steps in courses. Despite your (and admittedly a few others') frustration here , this challenge is rated pretty highly in our feedback reports (based on the "Feedback" link at the end of each video, quiz, or code challenge). Kenneth has talked about some potential enhancements to make it easier to work through, but we'll keep trying fun and challenging exercises like this. I would expect more teachers to add challenges along these lines as opposed to stop doing them like this.

An important thing to remember here at Treehouse, or anywhere, really, is that the goal is to learn and master something important or useful to you, not just complete a course, earn points, and move on. Learning how to program or use a new framework or tool will always require some struggle. It's how our brain muscles grow. :) Our mission is to prepare people for careers or hobbies in technology, and we need to do that by teaching and challenging students. And we need to continually evolve how we challenge students to be as effective as we can.

I hope this doesn't come across as dismissive of your criticism here because we need it to make sure we are serving students appropriately. I just want to address your concerns about these challenges and let you know that you can expect to come across different varieties of projects and challenges going forward as we evolve our courses to teach and prepare students as well as we possibly can.

Greg Kaleka
Greg Kaleka
39,021 Points

This is a super old thread, but I really feel like chiming in, so...

I love that Kenneth pushes you at the end of his courses with an almost-real-world mini project and not very much guidance. If you're not able to complete challenges like this, then you really haven't learned about Flask or Django - you've only learned how to do individual things in Flask or Django. It can be frustrating, but this kind of challenge actually tests if you can apply what you've learned or not. It also requires you to use some self-directed learning skills. You probably have to avail yourself of more than just Treehouse material - just like a real developer! Google, Stack Overflow, maybe even one of the books Kenneth mentions in that Django challenge you linked to would help; TDD with Python is great and available online for free.

At the end of the day, are you here to learn, or are you here for Treehouse points? This challenge is geared towards the former.