This is the official location for the recipe repo of group 7.
The app we would like to create is a website for users to post, to search and to comment on different recipes all over the world.
Username | password |
---|---|
user1 | user1p |
admin | admin |
Craig Terry | password |
Huanjia Wang | password |
Member | Responsibilities |
---|---|
Hristina Dokic | Credential related entities under security folder |
Craig Terry | Tag related entities under tags folder |
Huanjia Wang | Recipe, Comment under recipe folder |
- Primarily vote (because of odd number of members). If a member feels strongly about an issue/area, then they take charge and/or instruct.
- Another option to resolve the conflict could be: everyone is required to clone the repo from the GitHub location. instead of directly committing changes to the main branch, we are required to create PRs, and these PRs are not supposed to be merged into the original branch unless everyone
# | Area | Decision | Alternatives | Rationale |
---|---|---|---|---|
1 | IDE | Vs Code | IntelliJ | Easier to use, Team familiarity by most members |
2 | Dependency Management | Gradle | Maven | Demo, example and teaching are all about Gradle |
3 | Communication avenue | Teams | Discord | Every DePaul student has a Teams account, it doesn’t require extra registration |
Tool | Used for | commands |
---|---|---|
*Terminal | Real Terminal for Windows | |
SDKMan | Simplifies switching between JDKs and SDKs | sdk install java 17.0.6-tem sdk install gradle |
VS Code | Code Editor | |
Teams | Communication avenue |
**Be sure to install it on WSL if using WSL
Extension | Used for |
---|---|
Remote Development | To work with WSL |
Java IDE Pack | To work with Java |
Lombok Annotation Support | Lombok support |
Gradle for Java | Gradle command |
Docker | To work with Docker |
For Github setup
- Apr 4: Every team member made a self-introduction. We talked about when we should meet, what kind of features each of us might be responsible for.
- Apr 15: Instead of creating tables by using schema.sql, we adopt JPA to manage the table creation.
- Apr 30: Had a discussion over the pros and cons between Maven and Gradle and finally made the decision to move from Maven to Gradle.
- May 3: Discussion on how we are going to divide the responsibility since we kind of had some misunderstanding on the rubrics of this class. The meeting ended with the decision of restructuring the folders to better show responsibility.
- May 9: Transfer the code base to a new repo location under a newly created organization so that members could all be granted permission to add secrets to the repo.
- May 16: Set goals for adding security layer to this project. Use RBAC(role based access control) as our authorization mechanism
- May 23: Decide to add UI layer to our project, use mustache as our server side template engine
- May 30: Cut some of the features that we decide not to implement due to time issue, like adding recipe or tag through web page.
- We agreed on using Teams as your team communication software, since as a DPU student we’ve already registered automatically, and since the chat and meeting features provided by Teams are both of good quality and simple to use.
- We agreed on meeting every Tuesday at 8.00 p.m. where each team member will make a simple presentation of what they completed for that week, any ideas or the issues they might be facing at that time.
- We first pick Maven because we are more familiar with it. Later we transferred to Gradle since the demo, the example and the teaching are all about Gradle. Using Gradle to manage our project would just make our life much easier.
- We decided to restructure the folders to map our responsibilities, which could also ease the difficulty to identify indivision contributions and make our commits less conflict-prone.
- Transfer the code base to a new repo location under a newly created organization so that members could all be granted permission to add secrets to the repo
- We decided to add security layer to this project. We plan to store the info of our user into relational database, and to use RBAC(role based access control) as our authorization mechanism.
- We decide to add UI layer to our project, and adopt mustache as our server side template engine.
- We agreed on cutting some of the features that we decide not to implement due to time issue, like adding recipe or tag through web page.
- Tables have been added to the project:
- Recipe
- Tags
- TagsInfo
- RecipeTags
- Comment
- User
- UserRole
- Added relations between entities.
- Added Services for these entities and corresponding service tests.
- Added log and swagger integration.
- Added config file for different environment.
- Added GitHub actions to build jar file, build Docker image and push to Docker Hub.
- Added security layer.
- Added UI layer.