浏览代码

first commit

Leon 5 年前
当前提交
9d7d409999

+ 1
- 0
.gitignore 查看文件

@@ -0,0 +1 @@
1
+.idea

+ 30
- 0
instructions/README.md 查看文件

@@ -0,0 +1,30 @@
1
+# Mock Web Application
2
+* **Objective** - to create a mock-implementation of a well-known web service
3
+* **Purpose** - to demonstrate the construction of a full-stacked web-application
4
+
5
+## Developmental Notes
6
+### Minimum Tech Stack
7
+* **Frontend** - Angular
8
+* **Business Logic** - Java
9
+* **Data Layer** - MySQL
10
+* **Cloud** - Heroku
11
+
12
+### Installation
13
+* Install [NodeJs](https://nodejs.org/en/). From terminal execute
14
+    * `brew install node`
15
+* Install [Angular](http://angular.io/). From terminal execute
16
+    * `brew install angular-cli`
17
+* Install [AngularCli](). From terminal execute
18
+    * `npm install -g @angular/cli`
19
+* Install [Jhipster](http://angular.io/). From terminal execute
20
+    * `brew install jhipster`
21
+* Install [Yeoman](https://yeoman.io/). From terminal execute
22
+    * `npm install -g yo`
23
+
24
+
25
+## Project Topics
26
+* Read more about each of the topics by following the links below
27
+    * [Mock facebook application](./mock-facebook-application.md)
28
+    * [Mock slack application](./mock-slack-application.md)
29
+    * [Mock mint application](./mock-mint-application.md)
30
+    * [Mock netflix application](./mock-netflix-application.md)

+ 94
- 0
instructions/getting-started.md 查看文件

@@ -0,0 +1,94 @@
1
+
2
+# Getting Started
3
+### 1. Fork this repository
4
+* Delegate a team member to be a repository host
5
+	* Repository host will fork the respective repository
6
+	* Repository host will [add each group member as a project-contributor](https://stackoverflow.com/questions/7920320/adding-a-collaborator-to-my-free-github-account)
7
+* `feat/dev` should branch from `master`
8
+* Each feature should branch from `feat/dev` with a naming convention of `feat/dev/featurename`.
9
+* As implementation is added to an individual-feature branch and proven to be stable, merge changes from `feat/dev/featurename` to `feat/dev`
10
+* As features are added to a development branch and proven to be integrable, merge changes from `feat/dev/` to `master`.
11
+
12
+### 2. Clone this repository from your forked repository
13
+* `git clone https://git.zipcode.rocks/ProjectRepositoryHostName/ProjectName`
14
+
15
+### 3. Architect the Application
16
+* Upon executing `jhipster` in the terminal, you are prompted tp architect the application:
17
+	1. Which type of application would you like to create?
18
+		* monolith applicaiton
19
+	2. What is the base name of your application?
20
+		* my-project-name
21
+	3. What is your default java package name?
22
+		* `rocks.zipcode.io`
23
+	4. Do you want to use the JHipster registry to configure, monitor and scale your project?
24
+		* yes
25
+	5. Which type of database would you like to use?
26
+		* SQL (H2, MySQL, MariaDB, PostgreSQL, Oracle, MSSQL
27
+	6. Which production database would you like to use?
28
+		* MySQL
29
+	7. Which development database would you like to use?
30
+		* H2 with in-memory persistence
31
+	8. You do want use the Spring cache abstraction?
32
+		* Yes, with Hazelcast implementation (distributed cache, for multiple nodes)
33
+	9. Do you want to use Hibernate 2nd level cache?
34
+		* Yes
35
+	10. Would you like to use Maven or Gradle for building the backend?
36
+		* Maven
37
+	11. Which other technologies would you like to use?
38
+		* Nothing recommended here
39
+	12. Which framework would you like to use for the client?
40
+		* Angular 6
41
+	13. Would you like to enable SASS support using LibSass stylesheet preprocessor?
42
+		* yes
43
+	14. Would you like to enable internationalization support?
44
+		* yes
45
+	15. Please choose the native language of the application
46
+		* English
47
+	16. Please choose additional languages to install
48
+		* Spanish
49
+	17. Besides JUnit and Jest, which testing frameworks would you like to use?
50
+		* Protractor
51
+	18. Would you like to install other generators from the JHipster Marketplace?
52
+		* Nothing recommended here
53
+
54
+### 4. Running the Application
55
+* From the root directory of the project execute `./mvnw` to run the application
56
+* Ensure that you can sign in as an administrator using
57
+	* username: `admin`
58
+	* password: `admin`
59
+* Ensure that you can sign in as a user using
60
+	* username: `user`
61
+	* password: `user`
62
+
63
+### 5. Viewing the Application
64
+* Navigate to [http://localhost:8080/](http://localhost:8080/)
65
+
66
+### 6. Design your project Entities
67
+* Using the [JdlStudio](https://start.jhipster.tech/jdl-studio/), create a UML representative of the application that you would like to build.
68
+* After designing your entities, download the resulting `jhipster-jdl.jh` by selecting the download button at the top right of the interface.
69
+* Place the `jhipster-jdl.jh` in the root directory of the application.
70
+* Execute the `jhipster-jdl.jh` file by navigating to the directory and running the command
71
+	* `yo jhipster:import-jdl jhipster-jdl.jh`
72
+		* Jhipster prompts you to make refactoring decisions; Read carefully, choose wisely
73
+		* Upon refactoring, Jhipster generates the respective the respective Angular and Spring code.
74
+
75
+### 7. Viewing the newly refactored Application
76
+* Navigate to [http://localhost:8080/](http://localhost:8080/) to ensure the application still runs as expected.
77
+
78
+### 8. Separate the Client from the Server
79
+* Fork the respective client-repository
80
+* Clone your newly forked client-repository
81
+* Copy the contents of the the `/src/main/webapp` directory of the monolith that was created in `Part 3`, to the root directory of the newly cloned client-repository
82
+
83
+### 9. Run the server
84
+* Execute `./mvnw` from the the root directory of the server project.
85
+
86
+### 10. Run the client
87
+* Execute `npm install`
88
+
89
+### 11. Ensure application still runs after separating monolith
90
+* Navigate to [http://localhost:8080/](http://localhost:8080/) to ensure the application is still behaving as expected.
91
+
92
+## Frequently Asked Questions
93
+* How do I kill a process listening on port 8080?
94
+	* `npx kill-port 8080`

+ 32
- 0
instructions/git-collaboration-strategy.md 查看文件

@@ -0,0 +1,32 @@
1
+### Part 1, Creating The Team Branch (after forking)
2
+0. `cd ~/dev`
3
+1. `git clone https://git.zipcode.rocks/MyRepositoryHost/NameOfProject`
4
+2. `cd NameOfProject`
5
+3. `git checkout -b teambranch`
6
+4. `git add .`
7
+5. `git commit -m 'first commit'`
8
+6. `git push -u origin teambranch`
9
+
10
+
11
+### Part 2, Creating a Feature Branch
12
+1. `git fetch origin`
13
+2. `git checkout teambranch`
14
+3. `git checkout -b featurebranch`
15
+
16
+
17
+### Part 3, Synching a Feature Branch With Team Branch
18
+0. `git fetch origin`
19
+1. `git checkout featurebranch`
20
+2. `git pull origin teambranch`
21
+3. `git add .`
22
+4. `git commit -m 'feature branch synched with team branch'`
23
+5. `git push -u featurebranch`
24
+
25
+
26
+### Part 4, Merging a Feature Branch into Team Branch
27
+1. `git fetch origin`
28
+4. `git checkout teambranch`
29
+5. `git merge featurebranch`
30
+6. `git add .`
31
+7. `git commit -m 'merged featurebranch into teambranch'`
32
+8. `git push -u origin teambranch`

+ 14
- 0
instructions/mock-facebook-application.md 查看文件

@@ -0,0 +1,14 @@
1
+# Facebook Clone
2
+
3
+## User Stories to Fulfill
4
+* As a client (not yet logged in as user) I can
5
+	* register as a new user
6
+	* Log into a pre-existing account
7
+* As a user, I can
8
+	* view my friends
9
+	* view mutual friends
10
+	* message my friends
11
+	* post to friend pages
12
+	* comment on posts
13
+	* modify my page-post visibility
14
+	* only view friend-pages and public-pages

+ 11
- 0
instructions/mock-mint-application.md 查看文件

@@ -0,0 +1,11 @@
1
+# Mint Clone
2
+## User Stories to Fulfill
3
+* As a client (not logged in) I can
4
+	* register as a new user
5
+* As a user (logged in)
6
+	* add / remove a cash account
7
+	* add / remove a credit account
8
+	* add / remove a bill
9
+	* add / remove a scheduled bill payment
10
+	* view upcoming bills
11
+	* view historical payments

+ 15
- 0
instructions/mock-netflix-application.md 查看文件

@@ -0,0 +1,15 @@
1
+# Netflix Clone
2
+## User Stories to Fulfill
3
+* As a client (not logged in) I can
4
+	* register as a new user
5
+* As a user I
6
+	* can add up to 4 profiles to account
7
+	* remove profiles from account
8
+	* view videos categoriezed by
9
+		* genre
10
+		* trending
11
+		* recommended for you
12
+* As an admin I can
13
+	* add / remove videos
14
+	* add / remove users
15
+* Create pre-populated database of URLs from YouTube

+ 14
- 0
instructions/mock-slack-application.md 查看文件

@@ -0,0 +1,14 @@
1
+# Slack Clone
2
+
3
+## User Stories to Fulfill
4
+* As a client (not logged in) I can
5
+	* register as a new user
6
+* As a user, I
7
+	* can create a new workspace
8
+	* can view default channels
9
+	* can view accessible channels
10
+	* can direct message other users
11
+	* can view messages live as they are received
12
+* As an admin, I am a user who can
13
+	* create new channels
14
+	* remove users from channels