About the Portfolio Project: E-Commerce Website category

Hi All,

Please find the links to my e-commerce backend here:
GitHub repo
Live server

Docs are at /docs (not all endpoints are up as I spent too much time on this already)

I must say this was the most challenging one so far and I had to use a lot of the logic found in the example project. I first had reservations about going by the example project but in the end I found that there were some useful solutions in it that I will be using in the future so I defo learnt a lot from it.

TBH, I was not entirely happy how this part of the full stack course was organized/produced. For example I don’t get why we are required to use libraries that we will only learn about later in the course. If the point is to make me do my own research then fine but then why would you make me read about them again later?
I also found that there were way too many external and substandard tutorials included some of which are so outdated that the code did not even work. As a result of that I again had to do my own research which rendered the previous tutorials pointless.

Btw, thanks to all of you who submitted their work, it helped a lot and without them I could not have pulled this off…

Good luck to everyone on finishing the full project.
R

3 Likes

Finally finished the e-commerce api project. I feel like the content of this course needs a refresh. There was nothing on request validation, user sessions, password encryption or actually interacting with the database using javascript. I have some previous programming experience but I’ve never written anything like this before, so I had to do a lot of my own research- I felt a bit unequipped going into this project

My solution is also written in Typescript. I have previous programming experience in C# so I actually felt more comfortable coding it this way as opposed to vanilla Javascript ( I made far less dumb mistakes too).

There are a couple things still left to do and some bits of code I’m not completely happy with, but I can come back and make small improvements as I finish off the rest of this course. I’d appreciate any feedback or suggestions.

1 Like

Good lord, I finally finished this project. This project all-in probably took me a month and a half. Lessons learned:

  1. If you’re just starting this project I recommend you keep going with the Fullstack curriculum first. Connecting Postgres to Node, working with Express sessions and Passport.js, adding payment processing with Stripe API, and some other concepts are covered ahead in the course. I spent a lot of time spinning my wheels trying to figure them out on my own only to later realize they’re ahead in the course.

  2. I also spent probably two weeks just messing around with writing tests, which I recommend trying. Writing tests for the frontend really confused me and left me feeling intimidated. Writing backend tests definitely clicked better for me and I feel a lot more confident now.

  3. I also wrote custom authentication middleware using JWTs instead of using Passport altogether. I found a really thorough tutorial explaining Passport and it had a section to write your own middleware, so I went for it! Would love some feedback there (files found under lib/customAuth).

  4. Writing Swagger documentation also nearly killed me. You need both swagger-jsdoc and swagger-ui-express. The former turns all your comments about the routes into a a giant json document, and the latter serves the JSON in a pretty way. The comments above your routes are written in YAML, and translated into JSON. Don’t try to make a giant YAML or JSON file like the Codecademy example code, trust me. Instead add comments above each route.

  5. Deploying to Heroku was also pretty hairy, it took me a few days to work out some bugs in working with .env and npm scripts in my package.json (mostly related to my custom auth middleware). And some typos in my init.sql file downloaded from dbdiagram.io, so be careful there!

Cheers,
Carolyn

Github Repo
Live API docs

I honestly have no idea why this portfolio project is asking me to do somethings that I’ve never been introduced once!
Where in the path was any mention of authentication?!
Where was the slightest indication towards user registration and session?

This is not a simple go-and-research-for-yourself thing. In every other project you were at least given the basics beforehand and then even if you were stuck, you knew what to research on.

All of this back-end part of the Full Stack path was a mess and now it requires us to make an API with some specifications that none of us have even heard of while learning on Codecademy.

I’m surprised by the people who refer to this project as a good and fun one because this feels like taking an exam on material that you’ve never been presented with.

I really hope Codecademy realizes what grave mistake it has made.

Frustration kills motivation.

1 Like

I enjoyed this project a lot, it really challenged me, although it did take me 3-4 weeks to complete. I had to research and learn about a lot of different systems.

My code is here: https://github.com/DavidMorgan92/ecom
I’ve deployed to Heroku here: https://fathomless-brushlands-45761.herokuapp.com/

I’d welcome any comments and criticism.

Finally managed to complete this project!

It was a very complicated one, and the worst part was that the lessons on Codecademy barely covered %50 of the prerequisites.
It took me more than a month of practice to finally get ready for this project and the project itself took about 14 days to complete.

My advice to the ones who feel lost when starting this project (as I was!) is to first practice making small APIs and then adding authentication/authorization and finally, when feeling ready, start this project.
The lessons about passport.js and the whole authentication process are in the wrong order in Codecademy and come after this project! So, first be sure to check the whole syllabus and finish those lessons before doing this project.
At the time of writing this, those parts in the syllabus which are in the wrong order and will help you get ready for this project are as follows:

  1. Deploying Web Applications
  2. Web Security Fundamentals
  3. User Authentication & Authorization
  4. Data Security
  5. Common Attacks on Web Applications

I felt a huge amount of frustration when starting this project and my frustrating comment is still here. But I didn’t give up and did my best to learn and do this project.
I’m %100 positive that you can too!

I’d like to give a huge thanks to @mike7127143742 and @atanas.dim. Reviewing their code helped me a lot in completing this project and I welcome anyone whom my code can be of help to.

GitHub Repository: n-ii-ma/E-Commerce-API: A RESTful API for an E-Commerce App
Swagger Documentation: E-Commerce API

3 Likes

I just completed my full-stack ecommerce app & I want to share my story (it gets a bit deep)!!!

Here’s the link: https://minimalist-store.herokuapp.com/

I want to let you guys know that although the finished product looks pretty good, I struggled a lot working on this. I went down lots of different rabbit holes and there were points that I was absolutely lost.

Many times I just wanted to give up and throw my computer out of the window. However, despite how scared and confused I was, I made sure that I kept going.

If it got tough I just I accepted it, took a breather and just kept trying. I had the mentality that even if it took two years to build, that would be okay. All I focused on was sitting myself down in front of the computer, that’s it.

I’ve learnt that most of the time in coding, you’re going to be stuck somewhere and you’re going to feel ultra-demoralised. You’re going to spend more time on problems that you are on stuff that you already know.

BUT remember, you’re always learning even if you’re failing - so please embrace it. And when it gets tough, don’t go watch TV, scroll social media or distract yourself in any other way, just give your brain a real break.

If you’re reading this far, I’m 20 and I dropped out of university (Imperial College London) to start a business. While that business continues to run, I’ve been working 10hrs a day on coding for nearly three months now because I want to change the world with software.

If any of you are struggling with anything, feel free to message me and I’ll try to help you out. I noticed that this is can be a lonely journey and I want to let you know that you’re not alone.

Keep grinding and please don’t give up!

Love you all.

3 Likes

Hey all!

Finally finished part 1 to the ecommerce project, it took about 2 weeks. It was actually fun and a good challenge. Definitely felt more confident with this than with the react project. I did not use Heroku or Swagger and I do hope to change that and go back and refractor as we go along and when I find spare time. Below is the link to the code:

Shivani

Update to the last post:

I finally managed to finish the client side as well!

Live App: Note Land (note-land.netlify.app)
GitHub Repository: n-ii-ma/Note-Land-E-Commerce: A PERN stack e-commerce application (github.com)

Any feedback is appreciated.

Finally, that was a battle but IT IS ALIVE!

I still have quite a few things to do but the site and repo can be viewed here:

Live site
GitHub repo

Let me go through some key lessons learned for those just getting started:

  1. A few people have mentioned and I agree that you should really complete the course up to the data structures and algorithms stuff before attempting this project. There’s a lot covered there that will be pretty essential in doing this project. However I have seen a lot of people complaining about them not having seen a lot of the stuff before. That is really only half true. If you have completed the course you will have been exposed to the topics you will cover but like in the real world, you’re going to have to do a lot of your own research along the way like a real developer would on a new project so I would just try to accept that and use what you know to at least ask the right questions to Google/Stack Overflow.

  2. I did my project in Typescript. It definitely adds a little bit more complexity but if you look around you’ll see it’s pretty much essential in the job market now and this is a great opportunity to get to grips with it. Codecademy offers a course on it which will teach you the essentials and the Typescript docs/the internet in general can help you out. I’d recommend it both for the reason stated above and that it will help a lot with picking up little errors and incorrect usage of packages etc.

  3. If you take anything away from this post, it’s learn to use your debugging tools effectively. I’d say this project took me over 100 hours to complete in total but that would have been 500 if I couldn’t use these tools properly. Make sure you install React dev tools (and Redux dev tools if you’re using it) then I like to use Chrome dev tools when I’m debugging my front end and the built in VS Code debugger for the back end. I’ve got far more effective at using these as the project has gone on and can usually fix a bug in a matter of minutes rather than hours. Be aware that getting to grips with these tools as a newbie can be a pain but it is absolutely worth it even for a single project.

  4. I’d recommend taking a look at a few people’s projects on this forum and the Portfolio Project II forum to get an idea of a lot of things such as how to structure your app, the different technologies people use and their implementation details and just general unsureness in pulling something this big together. I was particularly grateful for this gentleman’s project here but I used at least 3 or 4 to help with different parts of my project.

  5. Lastly, don’t give up! This will feel like a mega project for someone at my/your stage in software development but you will learn so much because of the amount you’ll have to research and figure out and it should be a real challenge. Remember if you do this one right, then this is the one you’ll be putting in front of employers to get you your first job so it’s worth making the effort for it. I would say I’ve worked full time(+) on this for about 5 weeks to get from zero to deployed and don’t be surprised if it takes you a little longer depending on what you’re trying to accomplish.

And if anyone wants some help from myself or has any questions I will absolutely try to do my best. Just send me a message and I’ll get back to you!

All the best,
Iain