olegood / boosti Goto Github PK
View Code? Open in Web Editor NEWPet-Project: Boost Your Technical Interview
License: MIT License
Pet-Project: Boost Your Technical Interview
License: MIT License
Add basic authentication for endpoints call.
Introduce pre-commit message check configuration.
All commit messages should start with ticket/issue number.
Add build info in footer section and introduce the API for getting this information.
API:
GET /api/build-properties
{
"artifact": "boosti-web",
"name": "Boost TI",
"time": "1643359627212",
"version": "0.1-SNAPSHOT",
"group": "boosti",
"timestamp": "2022-01-28T08:47:07Z"
}
Example:
Version: 0.1-SNAPSHOT
Create CSS layout including:
Add simple placeholders for these elements.
Use in-memory database to store questions, answers (optional) and tags.
Create page called "Import" with elements:
Subtasks:
Introduce Material UI components.
See for details:
https://mui.com/
Introduce failsafe
Maven plugin and move JaCoCo threshold check into it.
Unit Tests
Integration Tests
Create dedicated screen for adding questions (topic and text are required).
Introduce API tests based on REST-assured test dependency.
Introduce new API:
DELETE /api/questions
Clean up deprecated code and Questions (old) view.
See for details: #23
Create initial client structure (ReactJS).
Create landing page that lists all the questions and grouped them by topic.
Example:
Maven
SQL
Enable disabled API tests after Basic Authentication implementation:
EndPointBuildPropertiesAPITest
EndPointQuestionsAPITest
Most probably it is necessary to specify header information.
EndPointBuildPropertiesAPITest
EndPointQuestionsAPITest
Fill pom.xml with contributors list, artifact name etc.
Blank screen when choose file to upload in Firefox.
Preconditions
Steps to Reproduce
Actual:
Console:
Uncaught TypeError: lastModifiedDate is undefined
The above error occurred in the <FileInfo> component:
FileInfo@http://localhost:3000/static/js/bundle.js:574:7
div
div
./node_modules/@emotion/react/dist/emotion-element-699e6908.browser.esm.js/withEmotionCache/<@http://localhost:3000/static/js/bundle.js:2603:66
Container@http://localhost:3000/static/js/bundle.js:13157:82
ImportContainer@http://localhost:3000/static/js/bundle.js:719:90
div
./node_modules/@emotion/react/dist/emotion-element-699e6908.browser.esm.js/withEmotionCache/<@http://localhost:3000/static/js/bundle.js:2603:66
Typography@http://localhost:3000/static/js/bundle.js:28167:87
div
./node_modules/@emotion/react/dist/emotion-element-699e6908.browser.esm.js/withEmotionCache/<@http://localhost:3000/static/js/bundle.js:2603:66
Box@http://localhost:3000/static/js/bundle.js:35221:72
Expected:
File is chosen and ready to be uploaded. File information is OK.
checkstyle published a release: 10.1
<puppycrawl.version>10.1</puppycrawl.version>
Create simple web-project based on following languages and tools:
Introduce ArchUnit for implementing some demo rules that check overall architecture requirements.
Create initial data model (Question) and some API for data retrieving.
Example:
GET /api/questions?topic=Java
Navigating to 'Import' for the first time shows an error in console:
react_devtools_backend.js:4061 Warning: validateDOMNesting(...): <ul> cannot appear as a descendant of <p>.
Introduce new domain object - category. Each question has to be attached to category (one-to-one).
Examine each changeSet
in db.changelog-1.0.xml
and provide rollback action.
Introduce JaCoCo plugin and set baselines:
Add missing tests to reach these numbers.
Test case QuestionServiceImplTest#shouldReturnAllQuestions
was fully replaced with Spock fixture QuestionServiceImplSpec#service should return all questions from repository
in 83d659c
Reduce time of test running: 618ms -> 107ms
See for details: 83d659c
QuestionServiceImplTest#shouldReturnAllQuestions
QuestionServiceImplTest#from(java.lang.Long, java.lang.String)
QuestionServiceImplTest#from(java.lang.String)
Create temporary drawer menu that opens from the left side.
Introduce new API:
DELETE /api/questions/{id}
Include instructions for failsafe
plugin running.
Set CORS for all requests.
Todo: TDB
Refactor component and use hooks: useState
, useEffect
etc.
New version of Spring Boot has been released. Keep the version up to date.
See the pom.xml
:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
pom.xml
Mark all the code used for Questions as deprecated.
Mimic the behavior on data grid view:
See for details: #24
Add missing frameworks and libraries.
Introduce ESLint and follow JS code best practices.
Introduce a separate type of tests - API.
All the tests that call RESTful API through Rest Assured will be called "API tests".
Set up Swagger 2
Create sample classes for parsing data from valid JSON and XML files.
Add simple checks:
Do not fail the build if any violations found.
Since roles hierarchy implemented, no need to combine roles anymore.
Code of UserRolesAttribute.java
could be safely removed.
P.S. This approach could be used in case of permissions-based solution (YAGNI).
UserRolesAttribute
UserRolesAttributeTest
UserRolesAttributeSpec
User
to domain
packageChange favicon.ico for::
https://iconarchive.com/show/red-orb-alphabet-icons-by-iconarchive/Letter-B-icon.html
Introduce Selenide as tool for UI (acceptance) testing.
Ensure uploading CSV follows comma-separated values convention.
Review README.md
file and keep all the languages, tools and frameworks up to date.
Create simple API for CSV upload with comma-separated lines.
Example:
POST /api/upload
Create About page and migrate to app navigation bar from MUI library.
Export selected questions into downloadable text file.
Add timestamp when file was generated.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.