Giter Club home page Giter Club logo

codefellowship's Introduction

Code Fellowship Labs

Labs 15, 16 and 17

Create webapp called CodeFellowship that allows people learning to code to connect with each other and support each other on their coding journeys.

How To Use This App

  1. Have a modern web browser like Google Chrome (Firefox or Edge)
  2. Install Java (recommend installing JDK 17+)
  3. Install PostgresQL (a latest, stable, supported version will do) and create a database.
  4. Install Gradle v.7.4.2
  5. Clone this repo.
  6. Update application.properties with information listed in Application Properties section
  7. At the terminal in the repo root folder, execute: gradle bootRun
  8. Gradle will install dependencies listed in application properties.
  9. Launch a browser and point the URL bar to 'localhost:8080'
  10. You will need to register yourself as a user using a 'Register' link.
  11. Once registered, you can login, visit the profile page (slash route), or logout.

Application Properties

File Application.Properties is not included in this repo for various reasons.

You will need to create one and put it in the './resources/templates' directory before building or running this webapp successfully.

spring.datasource.url=jdbc:postgresql://localhost:5432/your_database_name
spring.datasource.username=your_postgres_admin_username
spring.datasource.password=your_postgres_admin_password
spring.jpa.hibernate.ddl-auto=update
spring.jpa.generate-ddl=true
spring.mvc.hiddenmethod.filter.enabled=true
server.error.whitelabel.enabled=false

Note: This application.properties template code has been updated to the requirements in Wednesday's project work.

Feature Tasks

Current state: I am in the process of building this application to the standards of Lab 17.

'X' or checked list items below are completed but may not have been tested, with the exception of "default profile picture" which was implemented and tested yesterday.

'~' or tilde list items are partially implemented.

The WebApp will build and run without error.

There will be little (if any) live indication that today's feature implementations are enabled.

Wednesday

  • Allow users to log in to CodeFellowship, view user profiles, and create posts.

  • Upon logging in, users should be taken to a /myprofile route that displays their information.

  • This should include a default profile picture, which is the same for every user, and their basic information from ApplicationUser.

  • [~] The site should have a page which allows viewing the data about a single ApplicationUser, at a route like /users/{id}.

  • This should include a default profile picture, which is the same for every user, and their basic information.

  • Continue to ensure that your homepage, login, and registration routes are accessible to non-logged in users. All other routes should be limited to logged-in users.

  • Add a Post entity to your app.

  • A Post has a body and a createdAt timestamp.

  • A logged-in user should be able to create a Post, and a post should belong to the user that created it. Hint: This is a relationship between two pieces of data

  • A user’s posts should be visible on their profile page.

  • The site should use reusable templates for its information. (At a minimum, it should have one Thymeleaf fragment that is used on multiple pages.)

  • [~] The site should have a non-whitelabel error handling page that lets the user know, at minimum, the error code and a brief message about what went wrong.

Tuesday

  • build a webapp that allows users to log into CodeFellowship
  • single login page
  • login page has link to signup page
  • ApplicationUser has username, password (hashed), firstName, lastName, dateOfBirth, and bio
  • ApplicationUser fields can all be configured via the signup page
  • User can create an ApplicationUser on the signup page
  • Controller is 'Autowired' to manage password encoding
  • Follow steps using the Spring Security Cheat Sheet
  • Site should have a homepage as "slash route" aka "/" that contains basic information about the site
  • Slash route should have links to login and signup
  • Slash route should have link to logout if user is already logged in
  • User is redirected to home/login page when they logout
  • When user is logged in the app should display the username on every page
  • Ensure homepage, login, and registration routes are accessible to non-logged-in users
  • Site should be well styled and attractive
  • Site should use templates to display information
  • Ensure user registration also logs users into your app automatically

Kudos and Credits

Ben Mills Alex White Roger Reyes

...for their assistance in helping me resolve various bugs along the way!

codefellowship's People

Contributors

nojronatron avatar

Stargazers

Roman avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.