Skip to content

Commit a90e411

Browse files
authored
Merge pull request #34 from labens-ufrn/estimate_count
Adicionando contagem estimativa e outros ajustes.
2 parents fcfc23c + c41a52f commit a90e411

37 files changed

+660
-122
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
language: java
22

33
jdk:
4-
- openjdk8
4+
- openjdk11
55

66
cache:
77
directories:

README.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,13 @@
44

55
Sistema para facilitar a contagem na análise por pontos de função (APF) desenvolvido para ser utilizado nas disciplinas de Engenharia de Software do curso de Bacharelado em Sistemas de Informação do CERES/UFRN.
66

7+
## Documentação do Projeto
8+
9+
* Plano de Iteração
10+
* Documento de Visão
11+
* Lista de User Stories
12+
* Contagem de Tamanho Funcional com Análise por Pontos de Função
13+
714
## Padrões de Codificação
815

916
* Insert spaces for tabs
@@ -60,4 +67,4 @@ Desenvolvido a partir do tutorial e do código linkado abaixo:
6067

6168
### Tutoriais
6269

63-
Na página [Tutoriais](Tutorials.md) temos a lista de tutoriais consultados.
70+
Na página [Tutoriais](docs/Tutorials.md) temos a lista de tutoriais consultados.
File renamed without changes.
File renamed without changes.

pom.xml

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,12 @@
8282
<groupId>org.springframework.boot</groupId>
8383
<artifactId>spring-boot-starter-web</artifactId>
8484
<version>2.1.5.RELEASE</version>
85+
<exclusions>
86+
<exclusion>
87+
<groupId>org.springframework.boot</groupId>
88+
<artifactId>spring-boot-starter-logging</artifactId>
89+
</exclusion>
90+
</exclusions>
8591
</dependency>
8692

8793
<dependency>
@@ -128,11 +134,10 @@
128134
<version>2.3.0</version>
129135
</dependency>
130136

131-
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
132137
<dependency>
133-
<groupId>org.apache.logging.log4j</groupId>
134-
<artifactId>log4j-core</artifactId>
135-
<version>2.13.2</version>
138+
<groupId>org.springframework.boot</groupId>
139+
<artifactId>spring-boot-starter-log4j2</artifactId>
140+
<version>2.1.5.RELEASE</version>
136141
</dependency>
137142

138143
<dependency>
@@ -211,14 +216,15 @@
211216
<plugin>
212217
<groupId>org.apache.maven.plugins</groupId>
213218
<artifactId>maven-surefire-plugin</artifactId>
214-
<version>2.22.0</version>
219+
<version>2.22.2</version>
215220
<configuration>
216221
<includes>
217222
<include>**/*Tests.java</include>
218223
<include>**/*Test.java</include>
219224
</includes>
220225
<excludes>
221226
<exclude>**/Abstract*.java</exclude>
227+
<exclude>**/ContagemTest.java</exclude>
222228
</excludes>
223229
</configuration>
224230
</plugin>
@@ -256,13 +262,16 @@
256262
<configuration>
257263
<dependencyDetailsEnabled>true</dependencyDetailsEnabled>
258264
</configuration>
259-
<!-- <reportSets> <reportSet> <reports> <report>dependencies</report>
265+
<!-- <reportSets> <reportSet> <reports> <report>dependencies</report>
260266
<report>scm</report> </reports> </reportSet> </reportSets> -->
261267
</plugin>
262268
<plugin>
263269
<groupId>org.apache.maven.plugins</groupId>
264270
<artifactId>maven-javadoc-plugin</artifactId>
265271
<version>3.0.0</version>
272+
<configuration>
273+
<source>1.8</source>
274+
</configuration>
266275
</plugin>
267276
<plugin>
268277
<groupId>org.apache.maven.plugins</groupId>
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package br.ufrn.dct.apf.configuration;
2+
3+
import org.springframework.beans.factory.annotation.Value;
4+
import org.springframework.boot.jdbc.DataSourceBuilder;
5+
import org.springframework.context.annotation.Bean;
6+
import org.springframework.context.annotation.Configuration;
7+
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
8+
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
9+
10+
import javax.sql.DataSource;
11+
12+
13+
@Configuration
14+
public class WebMvcConfig implements WebMvcConfigurer {
15+
16+
@Value("${spring.datasource.url}")
17+
private String jdbcURl;
18+
19+
@Value("${spring.datasource.username}")
20+
private String dbUsername;
21+
22+
@Value("${spring.datasource.password}")
23+
private String dbPassword;
24+
25+
@Bean
26+
public BCryptPasswordEncoder passwordEncoder() {
27+
return new BCryptPasswordEncoder();
28+
}
29+
30+
@Bean
31+
public DataSource getDataSource() {
32+
DataSourceBuilder<?> dataSourceBuilder = DataSourceBuilder.create();
33+
dataSourceBuilder.driverClassName("com.mysql.jdbc.Driver");
34+
dataSourceBuilder.url(jdbcURl);
35+
dataSourceBuilder.username(dbUsername);
36+
dataSourceBuilder.password(dbPassword);
37+
return dataSourceBuilder.build();
38+
}
39+
}

src/main/java/br/ufrn/dct/apf/controller/AbstractController.java

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99
import org.springframework.security.core.userdetails.UserDetails;
1010
import org.springframework.web.servlet.ModelAndView;
1111

12-
import br.ufrn.dct.apf.dto.DataFunctionDTO;
13-
import br.ufrn.dct.apf.model.DataFunction;
1412
import br.ufrn.dct.apf.model.Role;
1513
import br.ufrn.dct.apf.model.User;
1614
import br.ufrn.dct.apf.service.UserService;
@@ -72,33 +70,4 @@ protected String getRoles(User user) {
7270
bld.append("]");
7371
return bld.toString();
7472
}
75-
76-
protected DataFunction convertToEntity(DataFunctionDTO dfDTO) {
77-
DataFunction df = new DataFunction();
78-
if (dfDTO.getType().equals(DataFunction.TYPE_ILF)) {
79-
df = DataFunction.createILF(dfDTO.getName());
80-
}
81-
if (dfDTO.getType().equals(DataFunction.TYPE_EIF)) {
82-
df = DataFunction.createEIF(dfDTO.getName());
83-
}
84-
df.setRecordElementTypes(dfDTO.getRecordElementTypes());
85-
df.setDataElementTypes(dfDTO.getDataElementTypes());
86-
df.setProject(dfDTO.getProject());
87-
df.setUserStory(dfDTO.getUserStory());
88-
89-
return df;
90-
}
91-
92-
protected DataFunctionDTO convertToDto(DataFunction df) {
93-
DataFunctionDTO dto = new DataFunctionDTO();
94-
dto.setId(df.getId());
95-
dto.setName(df.getName());
96-
dto.setType(df.getType());
97-
dto.setRecordElementTypes(df.getRecordElementTypes());
98-
dto.setDataElementTypes(df.getDataElementTypes());
99-
dto.setProject(df.getProject());
100-
dto.setUserStory(df.getUserStory());
101-
102-
return dto;
103-
}
10473
}

src/main/java/br/ufrn/dct/apf/controller/DataFunctionController.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66

77
import javax.validation.Valid;
88

9-
import org.apache.log4j.Logger;
9+
import org.apache.logging.log4j.LogManager;
10+
import org.apache.logging.log4j.Logger;
1011
import org.springframework.beans.factory.annotation.Autowired;
1112
import org.springframework.stereotype.Controller;
1213
import org.springframework.validation.BindingResult;
@@ -16,7 +17,6 @@
1617
import org.springframework.web.servlet.ModelAndView;
1718

1819
import br.ufrn.dct.apf.dto.DataFunctionDTO;
19-
import br.ufrn.dct.apf.model.DataFunction;
2020
import br.ufrn.dct.apf.model.Project;
2121
import br.ufrn.dct.apf.model.User;
2222
import br.ufrn.dct.apf.model.UserStory;
@@ -29,7 +29,7 @@ public class DataFunctionController extends AbstractController {
2929
/**
3030
* Logger.
3131
*/
32-
private static final Logger LOGGER = Logger.getLogger(DataFunctionController.class.getName());
32+
private static final Logger logger = LogManager.getLogger(DataFunctionController.class);
3333

3434
@Autowired
3535
private DataFunctionService service;
@@ -95,7 +95,7 @@ public ModelAndView list() {
9595
public ModelAndView save(@Valid DataFunctionDTO dfDto, BindingResult result) {
9696

9797
if (result.hasErrors()) {
98-
LOGGER.error("error.df.controller.save");
98+
logger.error("error.df.controller.save");
9999
return add(dfDto);
100100
}
101101

@@ -107,8 +107,8 @@ public ModelAndView save(@Valid DataFunctionDTO dfDto, BindingResult result) {
107107
p = projects.get(0);
108108
dfDto.setProject(p);
109109
}
110-
DataFunction df = convertToEntity(dfDto);
111-
service.save(df);
110+
111+
service.save(dfDto);
112112

113113
DataFunctionDTO newDF = new DataFunctionDTO();
114114
newDF.setProject(p);

src/main/java/br/ufrn/dct/apf/controller/LoginController.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import org.springframework.web.bind.annotation.PostMapping;
1313
import org.springframework.web.servlet.ModelAndView;
1414

15+
import br.ufrn.dct.apf.count.EstimativeCount;
1516
import br.ufrn.dct.apf.count.IndicativeCount;
1617
import br.ufrn.dct.apf.model.User;
1718
import br.ufrn.dct.apf.service.ProjectService;
@@ -98,7 +99,8 @@ public ModelAndView dashboard() {
9899
setUserAuth(mv);
99100

100101
mv.addObject("projects", projectService.findByIsPrivateFalse());
101-
mv.addObject("counter", new IndicativeCount());
102+
mv.addObject("icounter", new IndicativeCount());
103+
mv.addObject("ecounter", new EstimativeCount());
102104

103105
return mv;
104106
}

src/main/java/br/ufrn/dct/apf/controller/ProjectController.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55

66
import javax.validation.Valid;
77

8-
import org.apache.log4j.Level;
9-
import org.apache.log4j.Logger;
8+
import org.apache.logging.log4j.LogManager;
9+
import org.apache.logging.log4j.Logger;
1010
import org.springframework.beans.factory.annotation.Autowired;
1111
import org.springframework.stereotype.Controller;
1212
import org.springframework.validation.BindingResult;
@@ -28,7 +28,7 @@ public class ProjectController extends AbstractController {
2828
/**
2929
* Logger.
3030
*/
31-
private static final Logger LOGGER = Logger.getLogger(ProjectService.class.getName());
31+
private static final Logger logger = LogManager.getLogger(ProjectController.class);
3232

3333
@Autowired
3434
private ProjectService service;
@@ -91,7 +91,7 @@ public ModelAndView save(@Valid Project project, BindingResult result) {
9191
try {
9292
service.save(project, user);
9393
} catch (BusinessRuleException e) {
94-
LOGGER.error("error.project.controller.save", e);
94+
logger.error("error.project.controller.save", e);
9595
modelAndView.addObject("errorMessage", "User has been registered successfully");
9696
}
9797

@@ -109,7 +109,7 @@ public ModelAndView save(@Valid Project project, BindingResult result) {
109109
@GetMapping(value = "/project/suggestion", produces = "application/json")
110110
@ResponseBody
111111
public ProjectSuggestionWrapper autocompleteSuggestions(@RequestParam("searchstr") String searchstr) {
112-
LOGGER.log(Level.INFO, "searchstr = "+ searchstr);
112+
logger.debug("searchstr = "+ searchstr);
113113

114114
List<ProjectSuggestion> suggestions = new ArrayList<>();
115115
User current = getCurrentUser();
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
package br.ufrn.dct.apf.controller;
2+
3+
import java.util.HashSet;
4+
import java.util.List;
5+
import java.util.Set;
6+
7+
import javax.validation.Valid;
8+
9+
import org.apache.logging.log4j.LogManager;
10+
import org.apache.logging.log4j.Logger;
11+
import org.springframework.beans.factory.annotation.Autowired;
12+
import org.springframework.stereotype.Controller;
13+
import org.springframework.validation.BindingResult;
14+
import org.springframework.web.bind.annotation.GetMapping;
15+
import org.springframework.web.bind.annotation.PathVariable;
16+
import org.springframework.web.bind.annotation.PostMapping;
17+
import org.springframework.web.servlet.ModelAndView;
18+
19+
import br.ufrn.dct.apf.dto.TransactionFunctionDTO;
20+
import br.ufrn.dct.apf.model.Project;
21+
import br.ufrn.dct.apf.model.User;
22+
import br.ufrn.dct.apf.model.UserStory;
23+
import br.ufrn.dct.apf.service.TransactionFunctionService;
24+
import br.ufrn.dct.apf.service.ProjectService;
25+
26+
@Controller
27+
public class TransactionFunctionController extends AbstractController {
28+
29+
/**
30+
* Logger.
31+
*/
32+
private static final Logger logger = LogManager.getLogger(TransactionFunctionController.class);
33+
34+
@Autowired
35+
private TransactionFunctionService service;
36+
37+
@Autowired
38+
private ProjectService projectService;
39+
40+
@GetMapping("/tf/add/{projectId}")
41+
public ModelAndView add(TransactionFunctionDTO tf, @PathVariable("projectId") Long id) {
42+
ModelAndView mv = new ModelAndView("tf/add");
43+
44+
Project project = projectService.findOne(id);
45+
tf.setProject(project);
46+
Set<UserStory> userStories = project.getUserStories();
47+
UserStory userStory = new UserStory();
48+
49+
mv.addObject("project", project);
50+
mv.addObject("userStories", userStories);
51+
mv.addObject("userStory", userStory);
52+
53+
mv.addObject("tfDTO", tf);
54+
55+
return mv;
56+
}
57+
58+
@GetMapping("/tf/add")
59+
public ModelAndView add(TransactionFunctionDTO tf) {
60+
ModelAndView mv = new ModelAndView("tf/add");
61+
setUserAuth(mv);
62+
63+
Project project = new Project();
64+
Set<UserStory> userStories = new HashSet<>();
65+
UserStory userStory = new UserStory();
66+
if (tf != null && tf.getProject() != null) {
67+
project = projectService.findOne(tf.getProject().getId());
68+
tf.setProject(project);
69+
userStories = project.getUserStories();
70+
}
71+
72+
mv.addObject("project", project);
73+
mv.addObject("userStories", userStories);
74+
mv.addObject("userStory", userStory);
75+
76+
mv.addObject("tfDTO", tf);
77+
78+
return mv;
79+
}
80+
81+
@GetMapping("/tf/list")
82+
public ModelAndView list() {
83+
ModelAndView mv = new ModelAndView("tf/list");
84+
85+
User current = getCurrentUser();
86+
87+
List<Project> projects = projectService.findByUserId(current.getId());
88+
89+
mv.addObject("projects", projects);
90+
91+
return mv;
92+
}
93+
94+
@PostMapping("/tf/save")
95+
public ModelAndView save(@Valid TransactionFunctionDTO tfDto, BindingResult result) {
96+
97+
if (result.hasErrors()) {
98+
logger.error("error.df.controller.save");
99+
return add(tfDto);
100+
}
101+
102+
User current = getCurrentUser();
103+
104+
List<Project> projects = projectService.findByName(current.getId(), tfDto.getProject().getName());
105+
Project p = null;
106+
if (!projects.isEmpty()) {
107+
p = projects.get(0);
108+
tfDto.setProject(p);
109+
}
110+
111+
service.save(tfDto);
112+
113+
TransactionFunctionDTO newTF = new TransactionFunctionDTO();
114+
newTF.setProject(p);
115+
116+
return add(newTF);
117+
}
118+
}

0 commit comments

Comments
 (0)