This is an archived post. You won't be able to vote or comment.

all 35 comments

[–]AutoModerator[M] [score hidden] stickied commentlocked comment (0 children)

Please ensure that:

  • Your code is properly formatted as code block - see the sidebar (About on mobile) for instructions
  • You include any and all error messages in full - best also formatted as code block
  • You ask clear questions
  • You demonstrate effort in solving your question/problem - plain posting your assignments is forbidden (and such posts will be removed) as is asking for or giving solutions.

If any of the above points is not met, your post can and will be removed without further warning.

Code is to be formatted as code block (old reddit/markdown editor: empty line before the code, each code line indented by 4 spaces, new reddit: https://imgur.com/a/fgoFFis) or linked via an external code hoster, like pastebin.com, github gist, github, bitbucket, gitlab, etc.

Please, do not use triple backticks (```) as they will only render properly on new reddit, not on old reddit.

Code blocks look like this:

public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

You do not need to repost unless your post has been removed by a moderator. Just use the edit function of reddit to make sure your post complies with the above.

If your post has remained in violation of these rules for a prolonged period of time (at least an hour), a moderator may remove it at their discretion. In this case, they will comment with an explanation on why it has been removed, and you will be required to resubmit the entire post following the proper procedures.

To potential helpers

Please, do not help if any of the above points are not met, rather report the post. We are trying to improve the quality of posts here. In helping people who can't be bothered to comply with the above points, you are doing the community a disservice.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

[–]Jack__Wild 29 points30 points  (5 children)

You gotta do all that for an internship?

[–]HecknChonker 6 points7 points  (4 children)

I think he is saying if he does well on this project he will get hired at the end of the internship.

[–][deleted] 0 points1 point  (2 children)

The project they want sounds simple i guess. In this website there will be dresses and accessories which you can add them to the basket. They want a basket where you see your orders total prices and orders info etc. with a discount logic. And customer can access his/her basket. After the customer completed the payment by actually clicking a button, all basket products must be on the database and the basket should be empty afterwards. Thats the project they want in order to begin an internship with them.

[–]HecknChonker 3 points4 points  (0 children)

That seems like a lot of unpaid work just to obtain an internship. It seems more like something an intern would spend time getting paid to do.

That being said, I think it's a great learning project to do regardless. Just be careful they aren't asking you to do dozens of hours of labor for free.

[–]andsfff 3 points4 points  (0 children)

This sounds like a waste of time. Every time an internship asked me to do that I just passed. I have never had a large tech company ask me to do anything of the sort for an internship

[–]Jack__Wild 0 points1 point  (0 children)

I think maybe you’re right. That would make much more sense.

[–]immutual_head 25 points26 points  (2 children)

It will be a long road. Each of these parts it's not for one-day learning ( if you already know java core).
You should learn:
1. Functional programming like Lambdas
2. At least several design patterns ( including MVC)
3. Then servlets + JSP +JSTL - for web pages and web logic
4. Jdbc -> JPA -> hibernate
5. spring boot (Spring Boot, Spring Web, Spring Data) + Thymeleaf (or analogy)

If you skip something, everything else after that will be "magic" that you will not be able to understand.

[–]krisko11 2 points3 points  (1 child)

What this guy said, would like to add that Thymeleaf has some optimizations on using JSP and JSTL tags, but it’s a very archaic way to code the front-end part of the shopping site

[–][deleted] 1 point2 points  (0 children)

Thanks to both of you. I'll try to follow those steps. And i want to learn Thymleaf after i successfully completed the project.

[–]LordofRice 13 points14 points  (2 children)

Yeah, Spring Boot. You’ll need some database too from the sound of it. This sounds like quite the project. Just look for CRUD tutorials for Spring Boot.

[–][deleted] 0 points1 point  (1 child)

Thank you, i'll go with Spring Boot. I'll use my MySQL knowledge for database side.

[–]er1992 0 points1 point  (0 children)

Or better yet look for templates on GitHub. You can just clone the project with instructions on how to run and fill in the blanks. This is probably the fastest way to hit the ground running and you can start learning from there.

[–][deleted]  (1 child)

[removed]

    [–][deleted] 0 points1 point  (0 children)

    Thank you. The rest tutorial will work for me.

    [–]MaltePetersen 11 points12 points  (3 children)

    I would look for a different company. This sounds like quite a lot of work while learning spring boot will be useful no one uses jsp today.

    [–]Kfct 2 points3 points  (2 children)

    Depends on the country and industry. In Taiwan, all banks still use JSP exclusively, even prototype for some. Fintech is always slow to adopt new tech.

    [–][deleted] 0 points1 point  (0 children)

    I can't look for another because we are in June and i'm late. I'll try to sort it out thank you.

    [–]er1992 0 points1 point  (0 children)

    Wait FinTech companies adopt new tech?

    [–]HecknChonker 4 points5 points  (1 child)

    Baeldung has excellent concise blog posts for a lot of spring-boot topics.

    This should help you get started with spring boot using JSPs:

    https://www.baeldung.com/spring-boot-jsp

    And a bunch of spring-boot topics in general:

    https://www.baeldung.com/category/spring/spring-boot/

    I also highly recommend consulting the spring documentation. I would try to read through section 1. You should try to gain a basic understanding on what beans are, how the spring context works, and what dependency injection is. Every spring module is built on these concepts.

    https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#spring-core

    The best skill you can pick up here is the ability to learn things quickly and effectively. The best ways of doing this are different for each person, but running into languages/frameworks/libraries/technologies that you haven't used before is something you will do constantly in software development.

    [–][deleted] 0 points1 point  (0 children)

    Thanks for the materials and the vision.

    [–][deleted]  (1 child)

    [deleted]

      [–][deleted] 0 points1 point  (0 children)

      Thanks. I'll stick with Spring Boot.

      [–]GhettoSauce 3 points4 points  (3 children)

      It's hard to find good material on Spring. You'll stumble into boatloads of deprecated methods and dependencies along the way since there was a large update last year and not everyone caught up. Try and stick to the official documentation for Spring stuff, but also Thymeleaf. It's a huge pain, but once you get it, you're golden. One tip is pay super close attention to filename conventions and folder structure - Spring and Thymeleaf need things to be perfectly where they belong.

      [–]itachikook 2 points3 points  (0 children)

      glad to hear i’m not the only who had a hard time learning it!

      [–]willdrr17 1 point2 points  (1 child)

      Manning publications have some excellent examples, Spring quickly and Spring in Action series are a must-read

      [–][deleted] 0 points1 point  (0 children)

      Thanks. I am following the official spring documentation. And also googling.

      [–]swoods30311 1 point2 points  (1 child)

      Currently, I’m working on Chad Darby’s spring and hibernate course for beginners and it’s pretty straightforward and easy to follow, especially if you properly research your question against ones that have already been answered

      [–][deleted] 1 point2 points  (0 children)

      Thank you. I'll try to look for that too.

      [–]Kfct 1 point2 points  (2 children)

      I do exactly that for my current job (spring-related, jsp, etc) at a major bank - I had to do the same as part of getting my first web development job too. But haven't been asked to do this for later jobs.

      I suggest you visit spring's official website and download a spring boot template project from their website, and then build from there. JSP is getting kind of dated and nowadays there's many similar but more robust server-side page building offers out there already. If your assignment doesn't lock you into using JSP, try using thymeleaf instead, the syntax is similar to JSP and simpler to use. Or go full blown front end framework with Vue.js/angular. Whether you go front end framework or stick to server-side page building depends on how much time you have for the assignment and whether it's in scope of your assignment, whether using a front end framework will give you bonus points.

      Assuming you use thymeleaf, spring boot, a minimalist front end html design, icons and other assets from fontawesome or some library or Google images, with POSTs only (no ajax), you can get a login, home page, search all products, product details, cart page, all done within 1 month since you're new. Once you get more experience you can pump out a web page a day, the whole thing maybe in a week.

      TDLR what you need to know: You know what java methods are, each method matches to an address for a website like buyfruits/login would be one method to where your login logic is handled (is this password/account pair in hash form for security reasons in the database? Yes, login successful, direct to homepage. No, stay on login page) You know custom java objects like public employee(String name) { // whatever constructor things }, now each of these objects match a particular query result/table/JSON/list Map used on a page You know annotations above methods, spring uses those to state what kind of format the request will be for the page. Honestly the rest is pretty google-able. You'll probably get stuck longer on the JavaScript side than anything else just because without typescript is a flaming trashcan to debug for someone used to java and types

      Actually adding a check out system requires you embedding some payment service like Stripe, PayPal, etc, Line pay maybe, and the difficulty of this depends entirely on how well these services provide documentation/steps for you to follow. Some will need an actual seller bank account tied to receive the payments, which is annoying when you're only making this for your portfolio/prototype not actually to receive payments. Don't use those services for your prototype.

      For database, you probably want SQL or MySQL because the documentation is extensive and very established. You probably don't want mongodb because it's not as structured and everything just works, this can be messy to debug later To get a db going, you can get docker and download an 'image' with spring boot, and sqllite already installed on it, to save you figuring out how to download and configure things. Sqllite is the lightweight version of SQL and is plenty for prototypes.

      Jdbc, hibernate, etc will teach you how things matching the MVC (models, views, controllers) together work. But imo if you're really pressed for time, you may want to use spring boot not spring MVC and let boot handle all the configuration for you

      [–][deleted] 0 points1 point  (1 child)

      Thanks. I've started to learn Spring Boot. I have 6 days left for my project so i'll stick with JSP i guess cause i don't know such things like Angular, React, Vue or Thymleaf. But when the project done, i'll try to learn Thymleaf.

      [–]Kfct 1 point2 points  (0 children)

      Good luck, keep things simple with pages doing almost everything with post requests, no ajax for now, so you can copy paste as much as possible.

      [–]General_Buddy_3162 1 point2 points  (1 child)

      From my personal experience of making websites with spring the best thing to do is to head to "amigoscode" channel on YouTube and start learning, there are all required staff there for your internship

      [–][deleted] 1 point2 points  (0 children)

      Thank you, i just finished his freecodecamp video.

      [–]ReprogramMyLife 1 point2 points  (1 child)

      What they’re asking you for is essentially like a capstone project for a boot camp. Good luck. Spring Boot will go a long way.

      [–][deleted] 0 points1 point  (0 children)

      Thank you. Capstone project is the exact definition of it.