Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
0c3bf46
Add name of project and empty team list
alexbbt Oct 3, 2023
906f3bf
Merge pull request #1 from HolyNamesAcademy/alexbbt/add-team-to-readme
CaitlinRoach Oct 3, 2023
90c2717
Added name :D
sf3990 Oct 3, 2023
4c7ad6e
Added bullet point before name :D
sf3990 Oct 5, 2023
218f6d1
Added my name to the team list.
CEid24 Oct 5, 2023
06d7d7b
Update README.md
GabbyHi Oct 15, 2023
90710b1
I have committed my name
nataliehatz Oct 17, 2023
c45514f
Update README.md
freyamaddock Oct 17, 2023
848b1fb
edited README with name
maddynenn Oct 17, 2023
da9ae67
I have committed my name
nataliehatz Oct 17, 2023
a86a681
message
nwall24 Oct 17, 2023
4c17965
Adding my name
CaitlinRoach Oct 17, 2023
e17bf92
Merge pull request #5 from HolyNamesAcademy/freyamaddock-add-name
freyamaddock Oct 17, 2023
07a48e0
Merge branch 'master' into GabbyHi-add-name2
GabbyHi Oct 17, 2023
572a37e
Merge pull request #4 from HolyNamesAcademy/GabbyHi-add-name2
GabbyHi Oct 17, 2023
4a43a9c
Merge branch 'master' into nataliehatz
nataliehatz Oct 17, 2023
fdc2825
Merge pull request #6 from HolyNamesAcademy/nataliehatz
nataliehatz Oct 17, 2023
d355531
Merge branch 'master' into the_objective_best_branch_maddy
maddynenn Oct 17, 2023
3f22a55
fixed it
maddynenn Oct 17, 2023
d9e8a4b
Merge pull request #7 from HolyNamesAcademy/the_objective_best_branch…
maddynenn Oct 17, 2023
f00f4d6
Merge branch 'master' into sf3990/add-name
sf3990 Oct 17, 2023
29755af
Merge branch 'master' into ceid24/add-my-name
CEid24 Oct 17, 2023
eb12aba
Merge pull request #2 from HolyNamesAcademy/sf3990/add-name
sf3990 Oct 17, 2023
4f96cb7
Merge branch 'master' into ceid24/add-my-name
CEid24 Oct 17, 2023
ab861ca
Merge pull request #3 from HolyNamesAcademy/ceid24/add-my-name
CEid24 Oct 17, 2023
e08ea29
Merge branch 'master' into caitlinroach/addname
CaitlinRoach Oct 17, 2023
c576601
Merge pull request #9 from HolyNamesAcademy/caitlinroach/addname
CaitlinRoach Oct 17, 2023
8ae9097
Merge branch 'master' into nwall24_branch
nwall24 Oct 17, 2023
b70b4df
Merge pull request #8 from HolyNamesAcademy/nwall24_branch
nwall24 Oct 17, 2023
4a9bb6a
Add Phaser Tutorial
alexbbt Oct 31, 2023
ec08792
Merge pull request #43 from HolyNamesAcademy/master
alexbbt Nov 14, 2023
e2ab92c
Merge pull request #44 from HolyNamesAcademy/master
alexbbt Nov 14, 2023
cf71fda
Merge branch 'HolyNamesAcademy:master' into master
alexbbt Nov 14, 2023
81979f1
Move Java App into `backend` folder
alexbbt Nov 28, 2023
f88aa42
Setup Create React App in `frontend` folder
alexbbt Nov 28, 2023
9d7a482
Setup Basic Greeting Demo and Connect Dev Builds
alexbbt Nov 28, 2023
76c8672
Merge branch 'master' into alexbbt/setup-react-frontend
alexbbt Nov 28, 2023
4b6dbb9
Add MUI for Styling
alexbbt Nov 28, 2023
ba6fa8f
Merge pull request #45 from HolyNamesAcademy/alexbbt/setup-react-fron…
alexbbt Nov 28, 2023
bdc6995
fix label
alexbbt Nov 28, 2023
dec74d2
[CHORE] Setup Linting
alexbbt Nov 28, 2023
00aac3e
Move static folder
alexbbt Nov 28, 2023
4c1a3c6
Use Git Bash on Windows
alexbbt Dec 7, 2023
dc0988a
Add gitattributes
alexbbt Dec 7, 2023
170b153
Install React Router
alexbbt Dec 11, 2023
454115b
Setup basic routing structure
alexbbt Dec 12, 2023
ab75dc9
commit phaser tutorial
CaitlinRoach Dec 12, 2023
13fc0fe
charby repository
freyamaddock Dec 12, 2023
4d7a678
Merge branch 'RealHomePage' of https://github.com/HolyNamesAcademy/Pr…
freyamaddock Dec 12, 2023
ea824cd
charby user page
freyamaddock Dec 12, 2023
33e25d1
copied things over
freyamaddock Dec 14, 2023
8982c12
Adding Charbeez
CaitlinRoach Dec 14, 2023
cfa8992
Adding Charbeez
CaitlinRoach Dec 14, 2023
1c26ff5
birthday in Charby.java
freyamaddock Dec 14, 2023
2fe5c69
Merge pull request #46 from HolyNamesAcademy/RealHomePage
CaitlinRoach Jan 9, 2024
08b0188
Setup Phaser in React
alexbbt Jan 22, 2024
0150bd7
Merge pull request #47 from HolyNamesAcademy/alexbbt/react-router
alexbbt Jan 23, 2024
cdae965
Merge pull request #48 from HolyNamesAcademy/alexbbt/react-phaser
alexbbt Jan 23, 2024
e75061e
I have committed the user class.
nataliehatz Jan 23, 2024
80fb559
I have committed the user api controller and the user class.
nataliehatz Feb 1, 2024
ce706fa
interface for login
sf3990 Feb 6, 2024
993317b
a
sf3990 Feb 8, 2024
fc7d1c2
a
sf3990 Feb 8, 2024
afc8b3e
I have committed the finalized version of the user api controller and…
nataliehatz Feb 13, 2024
5127e88
Merge branch 'authentication' into User_nataliehatz
sf3990 Feb 13, 2024
056e453
resolved some stuff
sf3990 Feb 13, 2024
ec3d7aa
a
sf3990 Feb 13, 2024
e0a034e
I have committed the finalized version (as of 2/15) of the user api c…
nataliehatz Feb 15, 2024
e7a72da
Merge remote-tracking branch 'origin/User_nataliehatz' into User_nata…
nataliehatz Feb 15, 2024
95f11c2
I have committed the finalized version (as of 2/15) of the user api c…
nataliehatz Feb 15, 2024
190a540
added SignUpPage
sf3990 Feb 22, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* text=auto
30 changes: 15 additions & 15 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,20 +1,9 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

### Gradle ###
.gradle
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/
build/

### IntelliJ IDEA ###
.idea
Expand All @@ -34,3 +23,14 @@ out/

### VS Code ###
.vscode/

# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*
7 changes: 5 additions & 2 deletions .idea/runConfigurations/bootRun.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 9 additions & 6 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,18 @@
"version": "0.2.0",
"configurations": [
{
"type": "java",
"name": "Attach Spring",
"request": "attach",
"hostName": "localhost",
"port": 5005,
"command": "npm start",
"name": "Run Frontend",
"request": "launch",
"type": "node-terminal",
"cwd": "${workspaceFolder}/frontend",
"windows": {
"bashPath": "C:\\Windows\\sysnative\\bash.exe"
}
},
{
"type": "java",
"name": "Launch Spring",
"name": "Run Backend",
"request": "launch",
"mainClass": "com.hna.webserver.WebServerApplication"
}
Expand Down
14 changes: 13 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,22 @@
# Java Spring Web Server
# HNAMAGOTCHI

This is a Web Server application, modified from the Spring MVC serving web content tutorial repository (found [here](https://github.com/spring-guides/gs-serving-web-content)).
A Web Server is an application that receives HTTP requests and returns web pages.
Spring is a framework that we use to write our web server.
It implements a bunch of features that are common to all web servers so we can focus on the portions that unique to our application.

## Team

- Norah
- Caitlin Roach
- Chloe E.
- Sophie Fong
- Maddy
- Natalie
- Gabby H.
- Freya


# Getting Started

Here, we have a basic "Hello World" web server. Fork this repository to quickly get your project set up with some starter code.
Expand Down
18 changes: 18 additions & 0 deletions backend/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

### Java Build Files ###
build/
!**/src/main/**/build/
!**/src/test/**/build/

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/
32 changes: 32 additions & 0 deletions backend/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
plugins {
id 'java'
id 'org.springframework.boot' version '3.1.5'
id 'io.spring.dependency-management' version '1.1.3'
}

group = 'com.hna'
version = '0.0.1-SNAPSHOT'

java {
sourceCompatibility = '17'
}

repositories {
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
runtimeOnly 'com.h2database:h2'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('bootBuildImage') {
builder = 'paketobuildpacks/builder-jammy-base:latest'
}

tasks.named('test') {
useJUnitPlatform()
}
26 changes: 26 additions & 0 deletions backend/src/main/java/com/hna/webserver/LoadDatabase.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.hna.webserver;

import com.hna.webserver.model.User;
import com.hna.webserver.repository.UserRepository;
import com.hna.webserver.repository.CharbyRepository;
import com.hna.webserver.model.Charby;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.CommandLineRunner;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class LoadDatabase {
private static final Logger log = LoggerFactory.getLogger(LoadDatabase.class);

@Bean
CommandLineRunner initDatabase(UserRepository userRepository, CharbyRepository charbyRepository) {
return args -> {
log.info("Preloading " + userRepository.save(new User("Bilbo Baggins", "BBaggins@holynames-sea.org", "bilba", "hna!")));
log.info("Preloading " + userRepository.save(new User("Frodo Baggins", "FBaggins@holynames-sea.org", "froba", "H!Na")));
log.info("Preloading " + userRepository.save(new User("Gandalf Baggins", "GBaggins@holynames-sea.org", "ganba", "!AnH")));
log.info("Preloading " + charbyRepository.save(new Charby("Charby 1")));
};
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.hna.webserver.controller;

import com.hna.webserver.model.User;
import com.hna.webserver.repository.UserRepository;
import com.hna.webserver.model.Charby;
import com.hna.webserver.repository.CharbyRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
Expand All @@ -15,22 +15,22 @@

@RestController
@RequestMapping("/api")
public class UserApiController {
public class CharbyApiController {

@Autowired
UserRepository userRepository;
CharbyRepository CharbyRepository;

@GetMapping("/users")
public ResponseEntity<List<User>> all() {
return new ResponseEntity<>(userRepository.findAll(), HttpStatus.OK);
@GetMapping("/charbeez")
public ResponseEntity<List<Charby>> all() {
return new ResponseEntity<>(CharbyRepository.findAll(), HttpStatus.OK);
}

@GetMapping("/users/{id}")
public ResponseEntity<User> one(@PathVariable Long id) {
Optional<User> user = userRepository.findById(id);
@GetMapping("/charbeez/{id}")
public ResponseEntity<Charby> one(@PathVariable Long id) {
Optional<Charby> charby = CharbyRepository.findById(id);

if (user.isPresent()) {
return new ResponseEntity<>(user.get(), HttpStatus.OK);
if (charby.isPresent()) {
return new ResponseEntity<>(charby.get(), HttpStatus.OK);
}
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
package com.hna.webserver.controller;

import com.hna.webserver.model.User;
import com.hna.webserver.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Optional;

@RestController
@RequestMapping("/api")
public class UserApiController {

@Autowired
UserRepository userRepository;

@GetMapping("/users")
public ResponseEntity<List<User>> all() {
return new ResponseEntity<>(userRepository.findAll(), HttpStatus.OK);
}

@GetMapping("/users/{id}")
public ResponseEntity<User> one(@PathVariable Long id) {
Optional<User> user = userRepository.findById(id);

if (user.isPresent()) {
return new ResponseEntity<>(user.get(), HttpStatus.OK);
}
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
public void saveUser(@RequestBody User user){
User save = userRepository.save(user);
}
@PostMapping("/users/signup")
public ResponseEntity<User> signup(@RequestBody User user){
System.out.println(user);
if((user.getEmail()==null) || user.getEmail().equals("")){ // was getHnaEmail
System.out.println("Please enter an email.");
return new ResponseEntity<>(HttpStatus.UNPROCESSABLE_ENTITY);
}
if (user.getEmail().length() < 18 || !(user.getEmail().substring(user.getEmail().length()-17, user.getEmail().length()).equals("holynames-sea.org"))) {
System.out.println("Please enter an email with an HNA domain.");
return new ResponseEntity<>(HttpStatus.UNPROCESSABLE_ENTITY);
}
if((user.getName()==null || user.getName().equals(""))){
System.out.println("Please enter your name.");
return new ResponseEntity<>(HttpStatus.UNPROCESSABLE_ENTITY);
}
if(user.getPassword()==null || user.getPassword().equals("")){
System.out.println("Please enter a password.");
return new ResponseEntity<>(HttpStatus.UNPROCESSABLE_ENTITY);
}
if(user.getUsername()==null || user.getUsername().equals("")){
System.out.println("Please enter a username.");
return new ResponseEntity<>(HttpStatus.UNPROCESSABLE_ENTITY);
}
//store in variable, loop over and see if it exists
List<User> userList = userRepository.findAll();
for (int i = 0; i<userList.size(); i++){
if(userList.get(i).getUsername().equals(user.getUsername())){
System.out.println("This username has already been taken. Please enter another username.");
return new ResponseEntity<>(HttpStatus.UNPROCESSABLE_ENTITY);
}
}
saveUser(user);
return new ResponseEntity<>(HttpStatus.CREATED);

}
@PostMapping("/users/login")
public ResponseEntity<User> login(@RequestBody User user){
if(user.getPassword()==null || user.getPassword().equals("")){
System.out.println("Please enter a password.");
return new ResponseEntity<>(HttpStatus.UNPROCESSABLE_ENTITY);
}
if(user.getUsername()==null || user.getUsername().equals("")){
System.out.println("Please enter a username.");
return new ResponseEntity<>(HttpStatus.UNPROCESSABLE_ENTITY);
}

List<User> userList = userRepository.findAll();
for (int i = 0; i<userList.size(); i++){
if(userList.get(i).getUsername().equals(user.getUsername()) && userList.get(i).getPassword().equals(user.getPassword())){
return new ResponseEntity<>(HttpStatus.ACCEPTED);
}
System.out.println("Your username and password do not match. Please re-enter your log-in information.");
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
}

}
59 changes: 59 additions & 0 deletions backend/src/main/java/com/hna/webserver/model/Charby.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
package com.hna.webserver.model;

import jakarta.persistence.*;
import java.time.LocalDate;

@Entity
@Table(name = "charbeez")
public class Charby {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;

@Column(name = "name")
private String name;

@Column(name = "birthday")
private LocalDate birthday;

public Charby() {

}

public Charby(String name) {
this.name = name;
this.birthday = LocalDate.now();
}

public long getId() {
return id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getBirthday(){
return birthday.toString();
}

public void setBirthday(LocalDate date){
this.birthday = date;
}

@Override
public String toString() {
return "Charby [id=" + id + ", name=" + name + "]";
}


@ManyToOne
@JoinColumn (name = "user_id")
private User user;

}
Loading