├── .codeclimate.yml ├── .github ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── README.md └── issue_template.md ├── .gitignore ├── .mvn └── wrapper │ ├── MavenWrapperDownloader.java │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── .travis.yml ├── Jenkinsfile ├── LICENSE ├── admin-web ├── Dockerfile ├── pom.xml └── src │ ├── main │ ├── java │ │ └── io │ │ │ └── fundrequest │ │ │ └── platform │ │ │ └── admin │ │ │ ├── AdminApplication.java │ │ │ ├── ExceptionController.java │ │ │ ├── HomeController.java │ │ │ ├── claim │ │ │ ├── continuous │ │ │ │ └── AutoClaimer.java │ │ │ ├── controller │ │ │ │ └── ClaimController.java │ │ │ └── service │ │ │ │ └── ClaimModerationServiceImpl.java │ │ │ ├── config │ │ │ ├── CachingConfig.java │ │ │ ├── JmsConfig.java │ │ │ ├── LocalSecurityConfig.java │ │ │ ├── SchedulingConfig.java │ │ │ ├── SecurityConfig.java │ │ │ └── ThymeleafConfig.java │ │ │ ├── infrastructure │ │ │ ├── GenericControllerAdvice.java │ │ │ └── RequestVacuumer.java │ │ │ ├── messages │ │ │ └── controller │ │ │ │ └── MessagesController.java │ │ │ ├── notification │ │ │ ├── NotificationsTemplateService.java │ │ │ ├── OpenRequestsNotificationsController.java │ │ │ └── TargetPlatform.java │ │ │ ├── refund │ │ │ ├── RefundController.java │ │ │ └── RefundModerationServiceImpl.java │ │ │ └── service │ │ │ └── ModerationService.java │ └── resources │ │ ├── application-credentials.properties.template │ │ ├── application-local.properties │ │ ├── application.properties │ │ ├── static │ │ └── assets │ │ │ ├── css │ │ │ ├── core.css │ │ │ ├── core.min.css │ │ │ ├── website.css │ │ │ └── website.min.css │ │ │ ├── fonts │ │ │ ├── fontawesome │ │ │ │ ├── css │ │ │ │ │ └── fontawesome-all.min.css │ │ │ │ └── webfonts │ │ │ │ │ ├── fa-brands-400.eot │ │ │ │ │ ├── fa-brands-400.svg │ │ │ │ │ ├── fa-brands-400.ttf │ │ │ │ │ ├── fa-brands-400.woff │ │ │ │ │ ├── fa-brands-400.woff2 │ │ │ │ │ ├── fa-light-300.eot │ │ │ │ │ ├── fa-light-300.svg │ │ │ │ │ ├── fa-light-300.ttf │ │ │ │ │ ├── fa-light-300.woff │ │ │ │ │ ├── fa-light-300.woff2 │ │ │ │ │ ├── fa-regular-400.eot │ │ │ │ │ ├── fa-regular-400.svg │ │ │ │ │ ├── fa-regular-400.ttf │ │ │ │ │ ├── fa-regular-400.woff │ │ │ │ │ ├── fa-regular-400.woff2 │ │ │ │ │ ├── fa-solid-900.eot │ │ │ │ │ ├── fa-solid-900.svg │ │ │ │ │ ├── fa-solid-900.ttf │ │ │ │ │ ├── fa-solid-900.woff │ │ │ │ │ └── fa-solid-900.woff2 │ │ │ ├── roboto │ │ │ │ ├── Roboto-Bold.eot │ │ │ │ ├── Roboto-Bold.ttf │ │ │ │ ├── Roboto-Bold.woff │ │ │ │ ├── Roboto-Bold.woff2 │ │ │ │ ├── Roboto-Light.eot │ │ │ │ ├── Roboto-Light.ttf │ │ │ │ ├── Roboto-Light.woff │ │ │ │ ├── Roboto-Light.woff2 │ │ │ │ ├── Roboto-Medium.eot │ │ │ │ ├── Roboto-Medium.ttf │ │ │ │ ├── Roboto-Medium.woff │ │ │ │ ├── Roboto-Medium.woff2 │ │ │ │ ├── Roboto-Regular.eot │ │ │ │ ├── Roboto-Regular.ttf │ │ │ │ ├── Roboto-Regular.woff │ │ │ │ ├── Roboto-Regular.woff2 │ │ │ │ ├── Roboto-Thin.eot │ │ │ │ ├── Roboto-Thin.ttf │ │ │ │ ├── Roboto-Thin.woff │ │ │ │ └── Roboto-Thin.woff2 │ │ │ └── typekit-jaf-domus │ │ │ │ ├── jaf-domus-400.ttf │ │ │ │ ├── jaf-domus-400.woff │ │ │ │ ├── jaf-domus-400.woff2 │ │ │ │ ├── jaf-domus.ttf │ │ │ │ ├── jaf-domus.woff │ │ │ │ ├── jaf-domus.woff2 │ │ │ │ └── typekit.css │ │ │ ├── img │ │ │ ├── Fundrequest-title-white.png │ │ │ ├── Fundrequest-title-white.svg │ │ │ ├── Fundrequest-title.png │ │ │ ├── Fundrequest-title.svg │ │ │ ├── approve-issue.svg │ │ │ ├── bg-blue.png │ │ │ ├── bg-green.png │ │ │ ├── error-page-img.png │ │ │ ├── error.png │ │ │ ├── fundrequest-title-sprite.png │ │ │ ├── headerimg.png │ │ │ ├── logo-single.png │ │ │ ├── logo-single16.png │ │ │ ├── logo-single180.png │ │ │ ├── logo-single32.png │ │ │ ├── og-image.png │ │ │ ├── overlays │ │ │ │ ├── 01.png │ │ │ │ ├── 02.png │ │ │ │ ├── 03.png │ │ │ │ ├── 04.png │ │ │ │ ├── 05.png │ │ │ │ ├── 06.png │ │ │ │ ├── 07.png │ │ │ │ ├── 08.png │ │ │ │ └── 09.png │ │ │ ├── profile-avatar-color.png │ │ │ ├── profile-avatar-large.png │ │ │ ├── profile-avatar.png │ │ │ ├── rect.png │ │ │ ├── section-5A.png │ │ │ ├── section-5B.png │ │ │ ├── svg │ │ │ │ ├── arrow_left.svg │ │ │ │ └── arrow_right.svg │ │ │ ├── tokens │ │ │ │ ├── dock.png │ │ │ │ ├── fnd.png │ │ │ │ ├── ind.png │ │ │ │ ├── xsc.png │ │ │ │ ├── xuc.png │ │ │ │ └── zrx.png │ │ │ └── unicorn-gray.png │ │ │ ├── js │ │ │ └── fundrequest │ │ │ │ ├── copyToClipboard.js │ │ │ │ ├── forms.js │ │ │ │ ├── general.js │ │ │ │ └── refunds.js │ │ │ └── vendors │ │ │ ├── bootstrap │ │ │ ├── css │ │ │ │ ├── bootstrap.css │ │ │ │ └── bootstrap.min.css │ │ │ └── js │ │ │ │ ├── bootstrap.bundle.js │ │ │ │ ├── bootstrap.bundle.js.map │ │ │ │ ├── bootstrap.bundle.min.js │ │ │ │ └── bootstrap.bundle.min.js.map │ │ │ ├── jquery │ │ │ ├── core.js │ │ │ ├── jquery.js │ │ │ ├── jquery.min.js │ │ │ ├── jquery.min.map │ │ │ ├── jquery.slim.js │ │ │ ├── jquery.slim.min.js │ │ │ └── jquery.slim.min.map │ │ │ └── mdbootstrap │ │ │ ├── css │ │ │ ├── mdb.css │ │ │ └── mdb.min.css │ │ │ ├── font │ │ │ └── roboto │ │ │ │ ├── Roboto-Bold.eot │ │ │ │ ├── Roboto-Bold.ttf │ │ │ │ ├── Roboto-Bold.woff │ │ │ │ ├── Roboto-Bold.woff2 │ │ │ │ ├── Roboto-Light.eot │ │ │ │ ├── Roboto-Light.ttf │ │ │ │ ├── Roboto-Light.woff │ │ │ │ ├── Roboto-Light.woff2 │ │ │ │ ├── Roboto-Medium.eot │ │ │ │ ├── Roboto-Medium.ttf │ │ │ │ ├── Roboto-Medium.woff │ │ │ │ ├── Roboto-Medium.woff2 │ │ │ │ ├── Roboto-Regular.eot │ │ │ │ ├── Roboto-Regular.ttf │ │ │ │ ├── Roboto-Regular.woff │ │ │ │ ├── Roboto-Regular.woff2 │ │ │ │ ├── Roboto-Thin.eot │ │ │ │ ├── Roboto-Thin.ttf │ │ │ │ ├── Roboto-Thin.woff │ │ │ │ └── Roboto-Thin.woff2 │ │ │ ├── img │ │ │ ├── overlays │ │ │ │ ├── 01.png │ │ │ │ ├── 02.png │ │ │ │ ├── 03.png │ │ │ │ ├── 04.png │ │ │ │ ├── 05.png │ │ │ │ ├── 06.png │ │ │ │ ├── 07.png │ │ │ │ ├── 08.png │ │ │ │ └── 09.png │ │ │ └── svg │ │ │ │ ├── arrow_left.svg │ │ │ │ └── arrow_right.svg │ │ │ └── js │ │ │ ├── mdb.js │ │ │ └── mdb.min.js │ │ └── templates │ │ ├── claims.html │ │ ├── error.html │ │ ├── fragments │ │ ├── footer.html │ │ ├── header.html │ │ └── top.html │ │ ├── home.html │ │ ├── layout.html │ │ ├── messages │ │ ├── add.html │ │ ├── edit.html │ │ ├── fragments │ │ │ └── list.html │ │ ├── index.html │ │ └── type.html │ │ ├── notifications │ │ └── open-requests.html │ │ └── refunds.html │ └── test │ ├── java │ └── io │ │ └── fundrequest │ │ └── platform │ │ └── admin │ │ ├── claim │ │ ├── AutoClaimerTest.java │ │ ├── ClaimModerationServiceImplTest.java │ │ ├── controller │ │ │ └── RefundControllerTest.java │ │ └── service │ │ │ └── RefundModerationServiceImplTest.java │ │ ├── infrastructure │ │ └── RequestVacuumerTest.java │ │ ├── messages │ │ └── controller │ │ │ └── MessagesControllerTest.java │ │ └── notification │ │ ├── NotificationsTemplateServiceTest.java │ │ └── OpenRequestsNotificationsControllerTest.java │ └── resources │ ├── application.properties │ └── logback-test.xml ├── build.bat ├── build.sh ├── common ├── pom.xml └── src │ ├── main │ └── java │ │ └── io │ │ └── fundrequest │ │ └── common │ │ ├── FundRequestCommon.java │ │ └── infrastructure │ │ ├── IgnoreDuringComponentScan.java │ │ ├── JsoupSpringWrapper.java │ │ ├── SecurityContextHolderSpringDelegate.java │ │ ├── exception │ │ └── ResourceNotFoundException.java │ │ ├── feign │ │ └── BearerAuthRequestInterceptor.java │ │ ├── mapping │ │ ├── BaseMapper.java │ │ ├── DefaultMappingConfig.java │ │ └── Mappers.java │ │ └── mav │ │ ├── AbstractController.java │ │ ├── EnumToCapitalizedStringMapper.java │ │ ├── builder │ │ ├── MessageHolder.java │ │ ├── ModelAndViewBuilder.java │ │ └── RedirectBuilder.java │ │ ├── dto │ │ └── AlertDto.java │ │ ├── messaging │ │ ├── Message.java │ │ ├── MessageType.java │ │ └── Messages.java │ │ └── util │ │ ├── HttpServletRequestProxy.java │ │ └── HttpServletResponseProxy.java │ └── test │ └── java │ └── io │ └── fundrequest │ └── common │ └── infrastructure │ ├── AbstractControllerTest.java │ └── mav │ └── EnumToCapitalizedStringMapperTest.java ├── core ├── docker-compose.yml ├── pom.xml └── src │ ├── main │ └── java │ │ └── io │ │ └── fundrequest │ │ └── core │ │ ├── FundRequestCore.java │ │ ├── config │ │ ├── ContractConfig.java │ │ ├── DataConfig.java │ │ ├── FeignConfig.java │ │ ├── IdentityApiConfig.java │ │ ├── TelegramConfiguration.java │ │ └── Web3Config.java │ │ ├── contract │ │ ├── domain │ │ │ ├── ClaimRepositoryContract.java │ │ │ ├── FundRepositoryContract.java │ │ │ ├── FundRequestContract.java │ │ │ └── TokenWhitelistPreconditionContract.java │ │ └── service │ │ │ ├── FundRequestContractsService.java │ │ │ └── GetAllPossibleTokensKeyGenerator.java │ │ ├── erc20 │ │ ├── domain │ │ │ └── HumanStandardToken.java │ │ └── service │ │ │ └── ERC20Service.java │ │ ├── identity │ │ ├── IdentityAPIClient.java │ │ └── IdentityAPIClientDummy.java │ │ ├── infrastructure │ │ ├── SecurityContextService.java │ │ ├── SecurityContextServiceImpl.java │ │ ├── mav │ │ │ └── Initializer.java │ │ ├── repository │ │ │ ├── CrudRepository.java │ │ │ ├── JpaRepository.java │ │ │ └── PagingAndSortingRepository.java │ │ └── resttemplate │ │ │ └── RestTemplateUserAgentInterceptor.java │ │ ├── message │ │ ├── MessageService.java │ │ ├── MessageServiceImpl.java │ │ ├── domain │ │ │ ├── Message.java │ │ │ └── MessageType.java │ │ ├── dto │ │ │ └── MessageDto.java │ │ └── infrastructure │ │ │ └── MessageRepository.java │ │ ├── platform │ │ ├── GithubIssueToPlatformIssueDtoMapper.java │ │ ├── PlatformIssueDto.java │ │ ├── PlatformIssueService.java │ │ ├── PlatformIssueServiceImpl.java │ │ └── PlatformIssueStatus.java │ │ ├── request │ │ ├── BlockchainEventService.java │ │ ├── BlockchainEventServiceImpl.java │ │ ├── RequestService.java │ │ ├── RequestServiceImpl.java │ │ ├── claim │ │ │ ├── CanClaimRequest.java │ │ │ ├── ClaimDtoAggregator.java │ │ │ ├── ClaimService.java │ │ │ ├── ClaimServiceImpl.java │ │ │ ├── SignedClaim.java │ │ │ ├── UserClaimRequest.java │ │ │ ├── command │ │ │ │ ├── ApproveRequestClaim.java │ │ │ │ └── RequestClaimedCommand.java │ │ │ ├── domain │ │ │ │ ├── Claim.java │ │ │ │ ├── ClaimBuilder.java │ │ │ │ ├── ClaimRequestStatus.java │ │ │ │ ├── RequestClaim.java │ │ │ │ └── TrustedRepo.java │ │ │ ├── dto │ │ │ │ ├── AzraelClaimDto.java │ │ │ │ ├── ClaimByTransactionAggregate.java │ │ │ │ ├── ClaimDto.java │ │ │ │ ├── ClaimDtoMapper.java │ │ │ │ ├── ClaimDtoMapperDecorator.java │ │ │ │ ├── ClaimableResultDto.java │ │ │ │ ├── ClaimsByTransactionAggregate.java │ │ │ │ ├── RequestClaimDto.java │ │ │ │ ├── RequestClaimDtoDecorator.java │ │ │ │ ├── RequestClaimDtoMapper.java │ │ │ │ └── UserClaimableDto.java │ │ │ ├── event │ │ │ │ ├── ClaimRequestedEvent.java │ │ │ │ ├── RequestClaimableEvent.java │ │ │ │ └── RequestClaimedEvent.java │ │ │ ├── github │ │ │ │ └── GithubClaimResolver.java │ │ │ ├── handler │ │ │ │ ├── CreateGithubCommentOnClosedHandler.java │ │ │ │ ├── CreateGithubCommentOnResolvedHandler.java │ │ │ │ └── RequestClaimPendingHandler.java │ │ │ └── infrastructure │ │ │ │ ├── ClaimRepository.java │ │ │ │ ├── RequestClaimRepository.java │ │ │ │ └── TrustedRepoRepository.java │ │ ├── command │ │ │ ├── CreateRequestCommand.java │ │ │ └── UpdateRequestStatusCommand.java │ │ ├── domain │ │ │ ├── BlockchainEvent.java │ │ │ ├── IssueInformation.java │ │ │ ├── Platform.java │ │ │ ├── Request.java │ │ │ ├── RequestBuilder.java │ │ │ ├── RequestPhase.java │ │ │ ├── RequestStatus.java │ │ │ ├── RequestTechnology.java │ │ │ └── RequestType.java │ │ ├── dto │ │ │ └── BlockchainEventDto.java │ │ ├── erc67 │ │ │ ├── ERC67.java │ │ │ └── Erc67Generator.java │ │ ├── fiat │ │ │ ├── FiatService.java │ │ │ ├── coinmarketcap │ │ │ │ ├── client │ │ │ │ │ ├── CoinMarketCapApiKeyInterceptor.java │ │ │ │ │ ├── CoinMarketCapClient.java │ │ │ │ │ └── CoinMarketCapClientImpl.java │ │ │ │ ├── dto │ │ │ │ │ └── listing │ │ │ │ │ │ ├── CmcListing.java │ │ │ │ │ │ ├── CmcListingsResult.java │ │ │ │ │ │ ├── CmcQuote.java │ │ │ │ │ │ └── CmcQuotePrice.java │ │ │ │ └── service │ │ │ │ │ └── CoinMarketCapService.java │ │ │ └── cryptocompare │ │ │ │ ├── client │ │ │ │ ├── CryptoCompareApiKeyInterceptor.java │ │ │ │ ├── CryptoCompareClient.java │ │ │ │ └── CryptoCompareClientImpl.java │ │ │ │ ├── dto │ │ │ │ └── PriceResultDto.java │ │ │ │ └── service │ │ │ │ └── CryptoCompareService.java │ │ ├── fund │ │ │ ├── FundService.java │ │ │ ├── FundServiceImpl.java │ │ │ ├── PendingFundService.java │ │ │ ├── RefundProcessedEvent.java │ │ │ ├── RefundService.java │ │ │ ├── RefundServiceImpl.java │ │ │ ├── UserFundsDto.java │ │ │ ├── command │ │ │ │ ├── FundsAddedCommand.java │ │ │ │ ├── PendingFundCommand.java │ │ │ │ ├── RefundProcessedCommand.java │ │ │ │ └── RequestRefundCommand.java │ │ │ ├── continuous │ │ │ │ └── PendingFundCleaner.java │ │ │ ├── domain │ │ │ │ ├── CreateERC67FundRequest.java │ │ │ │ ├── Fund.java │ │ │ │ ├── PendingFund.java │ │ │ │ ├── Refund.java │ │ │ │ ├── RefundRequest.java │ │ │ │ └── RefundRequestStatus.java │ │ │ ├── dto │ │ │ │ ├── AbstractFundsByFunderAggregator.java │ │ │ │ ├── CommentDto.java │ │ │ │ ├── CommentDtoMapper.java │ │ │ │ ├── CommentDtoMapperDecorator.java │ │ │ │ ├── FundDto.java │ │ │ │ ├── FundDtoMapper.java │ │ │ │ ├── FundFundsByFunderAggregator.java │ │ │ │ ├── FundToFundWithUserDtoMapper.java │ │ │ │ ├── FundWithUserDto.java │ │ │ │ ├── FundsAndRefundsAggregator.java │ │ │ │ ├── FundsByFunderDto.java │ │ │ │ ├── FundsForRequestDto.java │ │ │ │ ├── PendingFundDto.java │ │ │ │ ├── RefundFundsByFunderAggregator.java │ │ │ │ ├── RefundRequestDto.java │ │ │ │ ├── RefundRequestDtoMapper.java │ │ │ │ └── RefundToFundWithUserDtoMapper.java │ │ │ ├── event │ │ │ │ └── RequestFundedEvent.java │ │ │ ├── handler │ │ │ │ ├── CheckFundsGtZeroHandler.java │ │ │ │ ├── CreateGithubCommentOnFundHandler.java │ │ │ │ ├── PublishRequestClaimedNotificationHandler.java │ │ │ │ └── PublishRequestFundedNotificationHandler.java │ │ │ ├── infrastructure │ │ │ │ ├── FundRepository.java │ │ │ │ ├── PendingFundRepository.java │ │ │ │ ├── RefundRepository.java │ │ │ │ ├── RefundRequestRepository.java │ │ │ │ └── TokenAmountDto.java │ │ │ └── messaging │ │ │ │ └── dto │ │ │ │ ├── ClaimedEthDto.java │ │ │ │ ├── FundedEthDto.java │ │ │ │ └── RefundedEthDto.java │ │ ├── handler │ │ │ ├── ChangeRequestStatusOnFundedHandler.java │ │ │ └── UpdateRequestLastModifiedDateOnFundedHandler.java │ │ ├── infrastructure │ │ │ ├── BlockchainEventRepository.java │ │ │ ├── RequestRepository.java │ │ │ ├── RequestSpecification.java │ │ │ ├── azrael │ │ │ │ ├── AzraelClient.java │ │ │ │ ├── AzraelFeignConfiguration.java │ │ │ │ ├── ClaimSignature.java │ │ │ │ ├── ClaimTransaction.java │ │ │ │ ├── RefundCommand.java │ │ │ │ ├── RefundTransaction.java │ │ │ │ └── SignClaimCommand.java │ │ │ └── github │ │ │ │ └── parser │ │ │ │ └── GithubPlatformIdParser.java │ │ ├── mapper │ │ │ ├── BlockchainEventDtoMapper.java │ │ │ └── RequestDtoMapperDecorator.java │ │ ├── statistics │ │ │ ├── StatisticsService.java │ │ │ ├── StatisticsServiceImpl.java │ │ │ └── dto │ │ │ │ └── StatisticsDto.java │ │ ├── validation │ │ │ ├── GithubLink.java │ │ │ └── GithubLinkValidator.java │ │ └── view │ │ │ ├── AllFundsDto.java │ │ │ ├── ApproveAndCallDto.java │ │ │ ├── IssueInformationDto.java │ │ │ ├── IssueInformationDtoMapper.java │ │ │ ├── PendingFundDtoMapper.java │ │ │ ├── PendingFundDtoMapperDecorator.java │ │ │ ├── RequestDto.java │ │ │ └── RequestDtoMapper.java │ │ ├── telegram │ │ └── TelegramService.java │ │ ├── token │ │ ├── TokenInfoService.java │ │ ├── TokenInfoServiceImpl.java │ │ ├── dto │ │ │ ├── TokenInfoDto.java │ │ │ └── TokenValueDto.java │ │ ├── mapper │ │ │ ├── TokenValueDtoMapper.java │ │ │ └── TokenValueMapper.java │ │ └── model │ │ │ └── TokenValue.java │ │ ├── transactions │ │ └── TransactionStatus.java │ │ ├── user │ │ ├── UserAuthentication.java │ │ ├── UserLoginCommand.java │ │ ├── UserService.java │ │ ├── UserServiceImpl.java │ │ ├── domain │ │ │ └── User.java │ │ ├── dto │ │ │ ├── UserDto.java │ │ │ ├── UserDtoMapper.java │ │ │ └── UserDtoMapperDecorator.java │ │ └── infrastructure │ │ │ └── UserRepository.java │ │ └── web3j │ │ ├── AddressUtils.java │ │ ├── EthUtil.java │ │ └── Web3jGateway.java │ └── test │ ├── java │ └── io │ │ └── fundrequest │ │ └── core │ │ ├── PrincipalMother.java │ │ ├── contract │ │ └── service │ │ │ ├── FundRequestContractsServiceTest.java │ │ │ └── GetAllPossibleTokensKeyGeneratorTest.java │ │ ├── infrastructure │ │ ├── AbstractRepositoryTest.java │ │ └── SecurityContextServiceImplTest.java │ │ ├── message │ │ └── MessageServiceImplTest.java │ │ ├── platform │ │ ├── GithubIssueToPlatformIssueDtoMapperTest.java │ │ └── PlatformIssueServiceImplTest.java │ │ ├── request │ │ ├── BlockchainEventServiceImplTest.java │ │ ├── RequestServiceImplTest.java │ │ ├── claim │ │ │ ├── ClaimDtoAggregatorTest.java │ │ │ ├── ClaimServiceImplTest.java │ │ │ ├── UserClaimRequestMother.java │ │ │ ├── domain │ │ │ │ ├── ClaimMother.java │ │ │ │ └── RequestClaimMother.java │ │ │ ├── dto │ │ │ │ ├── ClaimDtoMapperDecoratorTest.java │ │ │ │ └── RequestClaimDtoDecoratorTest.java │ │ │ ├── github │ │ │ │ └── GithubClaimResolverTest.java │ │ │ └── handler │ │ │ │ ├── CreateGithubCommentOnClosedHandlerTest.java │ │ │ │ └── CreateGithubCommentOnResolvedHandlerTest.java │ │ ├── domain │ │ │ ├── FundMother.java │ │ │ ├── IssueInformationBuilder.java │ │ │ ├── IssueInformationMother.java │ │ │ ├── RefundMother.java │ │ │ ├── RequestMother.java │ │ │ └── RequestTest.java │ │ ├── erc67 │ │ │ └── Erc67GeneratorTest.java │ │ ├── fiat │ │ │ ├── FiatServiceTest.java │ │ │ ├── coinmarketcap │ │ │ │ ├── client │ │ │ │ │ └── CoinMarketCapClientImplTest.java │ │ │ │ ├── dto │ │ │ │ │ └── listing │ │ │ │ │ │ └── CmcListingsResultTest.java │ │ │ │ └── service │ │ │ │ │ └── CoinMarketCapServiceTest.java │ │ │ └── cryptocompare │ │ │ │ └── client │ │ │ │ └── CryptoCompareClientImplTest.java │ │ ├── fund │ │ │ ├── FundServiceImplTest.java │ │ │ ├── PendingFundServiceTest.java │ │ │ ├── RefundServiceImplTest.java │ │ │ ├── UserFundsDtoTest.java │ │ │ ├── continuous │ │ │ │ └── PendingFundCleanerTest.java │ │ │ ├── domain │ │ │ │ └── PendingFundMother.java │ │ │ ├── dto │ │ │ │ ├── CommentDtoMapperDecoratorTest.java │ │ │ │ ├── FundFundsByFunderAggregatorTest.java │ │ │ │ ├── FundToFundWithUserDtoMapperTest.java │ │ │ │ ├── FundsAndRefundsAggregatorTest.java │ │ │ │ ├── RefundFundsByFunderAggregatorTest.java │ │ │ │ └── RefundToFundWithUserDtoMapperTest.java │ │ │ ├── handler │ │ │ │ ├── CheckFundsGtZeroHandlerTest.java │ │ │ │ ├── CreateGithubCommentOnFundHandlerTest.java │ │ │ │ ├── PublishRequestClaimedNotificationHandlerTest.java │ │ │ │ └── PublishRequestFundedNotificationHandlerTest.java │ │ │ └── infrastructure │ │ │ │ └── FundRepositoryTest.java │ │ ├── handler │ │ │ ├── ChangeRequestStatusOnFundedHandlerTest.java │ │ │ └── UpdateRequestLastModifiedDateOnFundedHandlerTest.java │ │ ├── infrastructure │ │ │ ├── RequestRepositoryTest.java │ │ │ └── github │ │ │ │ └── parser │ │ │ │ ├── GithubPlatformIdParserTest.java │ │ │ │ ├── GithubResultBuilder.java │ │ │ │ └── GithubResultMother.java │ │ ├── statistics │ │ │ └── StatisticsServiceImplTest.java │ │ ├── validation │ │ │ └── GithubLinkValidatorTest.java │ │ └── view │ │ │ ├── ClaimDtoMother.java │ │ │ ├── FundDtoMother.java │ │ │ └── RequestDtoMother.java │ │ ├── token │ │ ├── dto │ │ │ ├── TokenInfoDtoMother.java │ │ │ └── TokenValueDtoMother.java │ │ ├── mapper │ │ │ └── TokenValueMapperTest.java │ │ └── model │ │ │ └── TokenValueMother.java │ │ ├── user │ │ ├── UserDtoMother.java │ │ ├── UserServiceImplTest.java │ │ └── domain │ │ │ └── UserMother.java │ │ └── util │ │ └── ReflectionUtils.java │ └── resources │ ├── application.properties │ └── logback-test.xml ├── db-migrate-new.sh ├── db ├── db-migrate-new.sh ├── pom.xml └── src │ └── main │ ├── java │ └── io │ │ └── fundrequest │ │ └── db │ │ └── infrastructure │ │ ├── AbstractEntity.java │ │ └── SpringSecurityAuditorAware.java │ └── resources │ └── db │ └── migration │ ├── V20170404205600__request.sql │ ├── V20170414221852__refactor_request_with_parsed_github.sql │ ├── V20170415214138__add_watchers_to_request.sql │ ├── V20170415215909__url_unique_for_requests.sql │ ├── V20170424214331__add_technologies_to_request.sql │ ├── V20170922214645__add_funds_to_request.sql │ ├── V20170923130743__add_creation_date_to_fund.sql │ ├── V20171011151937__add_user_table.sql │ ├── V20171017233048__create_event_trace_table.sql │ ├── V20171121160018__add_notifications.sql │ ├── V20171121201047__create_desc_index_on_date_notifications.sql │ ├── V20171212154831__add_platform_id_to_request.sql │ ├── V20171212154925__rename_sourc_to_platform.sql │ ├── V20171218135830__funder_nullable_in_funds.sql │ ├── V20171227215240__add_timestamp_to_funds.sql │ ├── V20180112141300__add_request_claimed_notification.sql │ ├── V20180122204829__add_claim_table.sql │ ├── V20180123135108__add_transaction_id_to_notification.sql │ ├── V20180220133022__create_claim_request_table.sql │ ├── V20180223093707__add_idx01_to_request_claim_table.sql │ ├── V20180228120721__twitter_bounties.sql │ ├── V20180228131739__create_referral.sql │ ├── V20180228153626__twitter_posts.sql │ ├── V20180228160126__add_bounty_table.sql │ ├── V20180228170846__twitter_bounty_fulfillments.sql │ ├── V20180228205315__add_github_bounty.sql │ ├── V20180301114628__twitter_posts.sql │ ├── V20180301121619__create_first_twitter_bounty.sql │ ├── V20180302104835__add_stack_overflow_bounty.sql │ ├── V20180302114741__add_unique_referee.sql │ ├── V20180302140511__add_auditing_to_referral.sql │ ├── V20180302140615__add_auditing_to_bounty.sql │ ├── V20180302140645__add_auditing_to_github_bounty.sql │ ├── V20180302140657__add_auditing_to_stackoverflow_bounty.sql │ ├── V20180302153118__telegram_verification.sql │ ├── V20180302210651__add_status_to_referral.sql │ ├── V20180305162840__remove_telegramName_add_user_id.sql │ ├── V20180305165910__add_linkedin_verficiations.sql │ ├── V20180305214603__add_linkedin_posts.sql │ ├── V20180306124511__add_survey_table.sql │ ├── V20180314120019__new_media_posts.sql │ ├── V20180316103403__create_trusted_repos.sql │ ├── V20180405135519__add_token_to_funds.sql │ ├── V20180405135806__create_token_info.sql │ ├── V20180411154019__remove_token_info.sql │ ├── V20180417105752__DDL_create_pending_funds.sql │ ├── V20180418104315__add_funder_info_to_funds_table.sql │ ├── V20180418105556__DDL_add_platform_and_platformId.sql │ ├── V20180418133833__add_index_to_pending_funds.sql │ ├── V20180418152419__add_index_to_fund.sql │ ├── V20180419144220__add_issue_info_to_pending_fund.sql │ ├── V20180423134531__add_funder_user_id_to_fund.sql │ ├── V20180424145706__add_index_on_request.sql │ ├── V20180426134211__add_weight_to_languages.sql │ ├── V20180426155703__alter_platformid_to_text.sql │ ├── V20180502200640__add_audit_columns.sql │ ├── V20180507093304__add_transaction_hash_to_survey.sql │ ├── V20180507105401__add_transaction_hash_to_bounty.sql │ ├── V20180509111249__date_to_pending_fund.sql │ ├── V20180509120917__transactionhash_in_requestclaim.sql │ ├── V20180525141101__link_blockchain_event_with_fund_and_claim.sql │ ├── V20180528133239__align_fund_with_claim.sql │ ├── V20180604090101__create_refund_request_table.sql │ ├── V20180612160138__add_table_messages.sql │ ├── V20180614125037__create_refund_table.sql │ └── V20180712111918__refactor_notification.sql ├── faq ├── pom.xml └── src │ ├── main │ └── java │ │ └── io │ │ └── fundrequest │ │ └── platform │ │ └── faq │ │ ├── EmptyFAQServiceImpl.java │ │ ├── FAQService.java │ │ ├── FaqItemDtoMapper.java │ │ ├── FundRequestFAQ.java │ │ ├── GithubFAQServiceImpl.java │ │ ├── model │ │ ├── FaqItemDto.java │ │ └── FaqItemsDto.java │ │ └── parser │ │ ├── Faq.java │ │ ├── Faqs.java │ │ └── Page.java │ └── test │ └── java │ └── io │ └── fundrequest │ └── platform │ └── faq │ ├── EmptyFAQServiceImplTest.java │ ├── FaqItemDtoMapperTest.java │ └── GithubFAQServiceImplTest.java ├── github ├── pom.xml └── src │ ├── main │ └── java │ │ └── io │ │ └── fundrequest │ │ └── platform │ │ └── github │ │ ├── AbstractGithubScraperHealthCheck.java │ │ ├── CreateGithubCommand.java │ │ ├── CreateGithubComment.java │ │ ├── FundRequestGithub.java │ │ ├── GithubApiClient.java │ │ ├── GithubCommentFactory.java │ │ ├── GithubFeignConfiguration.java │ │ ├── GithubGateway.java │ │ ├── GithubIssueService.java │ │ ├── GithubRateHealthCheck.java │ │ ├── GithubRawClient.java │ │ ├── GithubScraperHealthCheckProperties.java │ │ ├── GithubScraperHealthChecksProperties.java │ │ ├── GithubScraperSolverHealthCheck.java │ │ ├── GithubScraperStatusHealthCheck.java │ │ ├── parser │ │ ├── GithubIssueCommentsResult.java │ │ ├── GithubRateLimit.java │ │ ├── GithubRateLimits.java │ │ ├── GithubResult.java │ │ └── GithubUser.java │ │ ├── resourceresolver │ │ ├── GithubTemplateResolver.java │ │ └── GithubTemplateResource.java │ │ └── scraper │ │ ├── GithubScraper.java │ │ ├── GithubSolverResolver.java │ │ ├── GithubStatusResolver.java │ │ └── model │ │ ├── GithubId.java │ │ └── GithubIssue.java │ └── test │ ├── java │ └── io │ │ └── fundrequest │ │ └── platform │ │ └── github │ │ ├── FundRequestGithubTestConfiguration.java │ │ ├── GithubCommentFactoryTest.java │ │ ├── GithubIssueServiceTest.java │ │ ├── GithubRateHealthCheckTest.java │ │ ├── GithubScraperSolverHealthCheckTest.java │ │ ├── GithubScraperStatusHealthCheckTest.java │ │ ├── resourceresolver │ │ └── GithubTemplateResourceTest.java │ │ └── scraper │ │ ├── DocumentMockBuilder.java │ │ ├── GithubScraperIntegrationTest.java │ │ ├── GithubScraperTest.java │ │ ├── GithubSolverResolverTest.java │ │ ├── GithubStatusResolverTest.java │ │ └── model │ │ └── GithubIdTest.java │ └── resources │ ├── application.properties │ └── logback-test.xml ├── gitter ├── pom.xml └── src │ ├── main │ └── java │ │ └── io │ │ └── fundrequest │ │ └── platform │ │ └── gitter │ │ ├── FundRequestGitter.java │ │ ├── GitterRooms.java │ │ ├── GitterService.java │ │ ├── RequestFundedGitterHandler.java │ │ └── config │ │ └── GitterConfig.java │ └── test │ └── java │ └── io │ └── fundrequest │ └── platform │ └── gitter │ ├── GitterServiceTest.java │ └── RequestFundedGitterHandlerTest.java ├── intercom ├── pom.xml └── src │ ├── main │ └── java │ │ └── io │ │ └── fundrequest │ │ └── platform │ │ └── intercom │ │ ├── FundRequestIntercom.java │ │ ├── IntercomApiClient.java │ │ ├── IntercomFeignConfiguration.java │ │ ├── builder │ │ ├── AdminBuilder.java │ │ ├── AdminMessageBuilder.java │ │ └── UserBuilder.java │ │ ├── claim │ │ └── RequestClaimedUserNotificationHandler.java │ │ ├── eventhandler │ │ └── RequestFundedIntercomEventHandler.java │ │ └── model │ │ └── RichLink.java │ └── test │ └── java │ └── io │ └── fundrequest │ └── platform │ └── intercom │ ├── RequestFundedIntercomEventHandlerTest.java │ └── claim │ ├── RequestClaimedUserNotificationHandlerTemplateIntegrationTest.java │ └── RequestClaimedUserNotificationHandlerTest.java ├── keycloak ├── pom.xml └── src │ ├── main │ └── java │ │ └── io │ │ └── fundrequest │ │ └── platform │ │ └── keycloak │ │ ├── DummyKeycloakRepository.java │ │ ├── FundRequestKeycloak.java │ │ ├── KeycloakConfig.java │ │ ├── KeycloakRepository.java │ │ ├── KeycloakRepositoryImpl.java │ │ ├── Provider.java │ │ ├── UserIdentity.java │ │ └── dto │ │ └── AccessTokenResult.java │ └── test │ └── java │ └── io │ └── fundrequest │ └── platform │ └── keycloak │ └── KeycloakRepositoryImplTest.java ├── logo.png ├── mvnw ├── mvnw.cmd ├── notification-contract ├── pom.xml └── src │ └── main │ └── java │ └── io │ └── fundrequest │ └── notification │ └── dto │ ├── NotificationDto.java │ ├── NotificationType.java │ ├── RequestClaimedNotificationDto.java │ └── RequestFundedNotificationDto.java ├── notification ├── pom.xml └── src │ ├── main │ └── java │ │ └── io │ │ └── fundrequest │ │ └── notification │ │ ├── FundRequestNotification.java │ │ ├── NotificationRepository.java │ │ ├── PersistNotificationHandler.java │ │ ├── RequestClaimedNotificationMapper.java │ │ ├── RequestFundedNotificationMapper.java │ │ ├── config │ │ ├── NotificationDataConfig.java │ │ └── NotificationTemplatesConfig.java │ │ └── domain │ │ ├── Notification.java │ │ ├── RequestClaimedNotification.java │ │ └── RequestFundedNotification.java │ └── test │ └── java │ └── io │ └── fundrequest │ └── notification │ ├── NotificationRepositoryTest.java │ ├── PersistNotificationHandlerTest.java │ └── domain │ ├── RequestClaimedNotificationMother.java │ └── RequestFundedNotificationMother.java ├── pom.xml ├── profile ├── pom.xml └── src │ ├── main │ └── java │ │ └── io │ │ └── fundrequest │ │ └── platform │ │ └── profile │ │ ├── ProfileApplication.java │ │ ├── arkane │ │ ├── ArkaneRepository.java │ │ ├── Wallet.java │ │ ├── WalletBalance.java │ │ └── WalletsResult.java │ │ ├── bounty │ │ ├── domain │ │ │ ├── Bounty.java │ │ │ ├── BountyStatus.java │ │ │ └── BountyType.java │ │ ├── dto │ │ │ ├── BountyDTO.java │ │ │ └── PaidBountyDto.java │ │ ├── event │ │ │ └── CreateBountyCommand.java │ │ ├── infrastructure │ │ │ └── BountyRepository.java │ │ └── service │ │ │ ├── BountyService.java │ │ │ └── BountyServiceImpl.java │ │ ├── config │ │ ├── ProfileDataConfig.java │ │ └── ProfileFeignConfig.java │ │ ├── developer │ │ └── verification │ │ │ └── event │ │ │ └── DeveloperVerified.java │ │ ├── github │ │ ├── GithubBountyService.java │ │ ├── GithubBountyServiceImpl.java │ │ ├── domain │ │ │ └── GithubBounty.java │ │ └── infrastructure │ │ │ └── GithubBountyRepository.java │ │ ├── profile │ │ ├── ProfileService.java │ │ ├── ProfileServiceImpl.java │ │ ├── dto │ │ │ ├── GithubVerificationDto.java │ │ │ ├── IdentityProvider.java │ │ │ ├── UserLinkedProviderEvent.java │ │ │ ├── UserProfile.java │ │ │ └── UserProfileProvider.java │ │ └── provider │ │ │ └── ProviderProfileService.java │ │ ├── ref │ │ ├── CreateRefCommand.java │ │ ├── RefSignupEvent.java │ │ ├── RefSignupListener.java │ │ ├── ReferralService.java │ │ ├── ReferralServiceImpl.java │ │ ├── domain │ │ │ ├── Referral.java │ │ │ └── ReferralStatus.java │ │ ├── dto │ │ │ ├── ReferralDto.java │ │ │ ├── ReferralOverviewDto.java │ │ │ └── ShortUrlResult.java │ │ └── infrastructure │ │ │ ├── ReferralRepository.java │ │ │ └── mav │ │ │ ├── ArkaneAdvice.java │ │ │ └── ProfileControllerAdvice.java │ │ ├── stackoverflow │ │ ├── StackOverflowBountyService.java │ │ ├── StackOverflowBountyServiceImpl.java │ │ ├── domain │ │ │ └── StackOverflowBounty.java │ │ ├── dto │ │ │ ├── StackOverflowResult.java │ │ │ ├── StackOverflowUser.java │ │ │ └── StackOverflowVerificationDto.java │ │ └── infrastructure │ │ │ ├── StackOverflowBountyRepository.java │ │ │ └── StackOverflowClient.java │ │ └── survey │ │ ├── domain │ │ ├── Survey.java │ │ ├── SurveyDto.java │ │ ├── SurveyService.java │ │ ├── SurveyServiceImpl.java │ │ └── SurveyStatus.java │ │ └── infrastructue │ │ └── SurveyRepository.java │ └── test │ ├── java │ └── io │ │ └── fundrequest │ │ └── platform │ │ └── profile │ │ ├── arkane │ │ └── WalletMother.java │ │ ├── bounty │ │ └── service │ │ │ └── BountyServiceImplTest.java │ │ ├── github │ │ └── GithubBountyServiceImplTest.java │ │ ├── profile │ │ ├── ProfileServiceImplTest.java │ │ └── dto │ │ │ ├── UserProfileMother.java │ │ │ └── UserProfileTest.java │ │ └── ref │ │ ├── ReferralServiceImplTest.java │ │ └── infrastructure │ │ └── mav │ │ └── ArkaneAdviceTest.java │ └── resources │ ├── application.properties │ └── logback-test.xml ├── runAdmin.bat ├── runAdmin.sh ├── runDependencies.sh ├── runPlatform.bat ├── runPlatform.sh ├── spring-social-gitter ├── pom.xml └── src │ ├── main │ └── java │ │ └── io │ │ └── fundrequest │ │ └── social │ │ └── gitter │ │ ├── api │ │ ├── Gitter.java │ │ ├── Me.java │ │ ├── Message.java │ │ ├── MessageResource.java │ │ ├── Room.java │ │ ├── RoomResource.java │ │ ├── RoomType.java │ │ ├── User.java │ │ ├── UserResource.java │ │ └── impl │ │ │ ├── GitterTemplate.java │ │ │ ├── MessageResourceTemplate.java │ │ │ ├── RoomResourceTemplate.java │ │ │ └── UserResourceTemplate.java │ │ └── connect │ │ ├── GitterAdapter.java │ │ ├── GitterConnectionFactory.java │ │ └── GitterServiceProvider.java │ └── test │ ├── java │ └── io │ │ └── fundrequest │ │ └── social │ │ └── gitter │ │ └── api │ │ └── impl │ │ ├── RoomMother.java │ │ ├── RoomResourceTemplateTest.java │ │ ├── UserMother.java │ │ └── UserResourceTemplateTest.java │ └── resources │ ├── room │ └── rooms.json │ └── user │ └── me.json ├── tweb ├── Dockerfile ├── libs │ └── dd-java-agent.jar ├── pom.xml └── src │ ├── main │ ├── frontend │ │ ├── gulpfile.js │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── src │ │ │ ├── fonts │ │ │ │ ├── fontawesome │ │ │ │ │ ├── css │ │ │ │ │ │ └── fontawesome-all.min.css │ │ │ │ │ └── webfonts │ │ │ │ │ │ ├── fa-brands-400.eot │ │ │ │ │ │ ├── fa-brands-400.svg │ │ │ │ │ │ ├── fa-brands-400.ttf │ │ │ │ │ │ ├── fa-brands-400.woff │ │ │ │ │ │ ├── fa-brands-400.woff2 │ │ │ │ │ │ ├── fa-light-300.eot │ │ │ │ │ │ ├── fa-light-300.svg │ │ │ │ │ │ ├── fa-light-300.ttf │ │ │ │ │ │ ├── fa-light-300.woff │ │ │ │ │ │ ├── fa-light-300.woff2 │ │ │ │ │ │ ├── fa-regular-400.eot │ │ │ │ │ │ ├── fa-regular-400.svg │ │ │ │ │ │ ├── fa-regular-400.ttf │ │ │ │ │ │ ├── fa-regular-400.woff │ │ │ │ │ │ ├── fa-regular-400.woff2 │ │ │ │ │ │ ├── fa-solid-900.eot │ │ │ │ │ │ ├── fa-solid-900.svg │ │ │ │ │ │ ├── fa-solid-900.ttf │ │ │ │ │ │ ├── fa-solid-900.woff │ │ │ │ │ │ └── fa-solid-900.woff2 │ │ │ │ ├── roboto │ │ │ │ │ ├── Roboto-Bold.eot │ │ │ │ │ ├── Roboto-Bold.ttf │ │ │ │ │ ├── Roboto-Bold.woff │ │ │ │ │ ├── Roboto-Bold.woff2 │ │ │ │ │ ├── Roboto-Light.eot │ │ │ │ │ ├── Roboto-Light.ttf │ │ │ │ │ ├── Roboto-Light.woff │ │ │ │ │ ├── Roboto-Light.woff2 │ │ │ │ │ ├── Roboto-Medium.eot │ │ │ │ │ ├── Roboto-Medium.ttf │ │ │ │ │ ├── Roboto-Medium.woff │ │ │ │ │ ├── Roboto-Medium.woff2 │ │ │ │ │ ├── Roboto-Regular.eot │ │ │ │ │ ├── Roboto-Regular.ttf │ │ │ │ │ ├── Roboto-Regular.woff │ │ │ │ │ ├── Roboto-Regular.woff2 │ │ │ │ │ ├── Roboto-Thin.eot │ │ │ │ │ ├── Roboto-Thin.ttf │ │ │ │ │ ├── Roboto-Thin.woff │ │ │ │ │ └── Roboto-Thin.woff2 │ │ │ │ └── typekit-jaf-domus │ │ │ │ │ ├── jaf-domus-400.ttf │ │ │ │ │ ├── jaf-domus-400.woff │ │ │ │ │ ├── jaf-domus-400.woff2 │ │ │ │ │ ├── jaf-domus.ttf │ │ │ │ │ ├── jaf-domus.woff │ │ │ │ │ ├── jaf-domus.woff2 │ │ │ │ │ └── typekit.css │ │ │ ├── img │ │ │ │ ├── BTC.png │ │ │ │ ├── Fundrequest-title-white.png │ │ │ │ ├── Fundrequest-title-white.svg │ │ │ │ ├── Fundrequest-title.png │ │ │ │ ├── Fundrequest-title.svg │ │ │ │ ├── advisor-addison-huegel.jpg │ │ │ │ ├── advisor-christopher-heymann.jpg │ │ │ │ ├── advisor-kenzi-wang.png │ │ │ │ ├── advisor-lasse-clausen.jpg │ │ │ │ ├── advisor-nico-haelterman.jpg │ │ │ │ ├── advisor-thomas-graham.jpg │ │ │ │ ├── advisor-thomas-matthys.jpg │ │ │ │ ├── approve-issue.svg │ │ │ │ ├── bg-blue.png │ │ │ │ ├── bg-green.png │ │ │ │ ├── blockchainnews.png │ │ │ │ ├── btcecho.png │ │ │ │ ├── chainfinance.png │ │ │ │ ├── chipin.png │ │ │ │ ├── clearify.png │ │ │ │ ├── clearify_bottom.png │ │ │ │ ├── community.svg │ │ │ │ ├── contributors.svg │ │ │ │ ├── controls.png │ │ │ │ ├── create-issue.svg │ │ │ │ ├── cryptoninjas.png │ │ │ │ ├── dummy-badge.png │ │ │ │ ├── error-page-img.png │ │ │ │ ├── error.png │ │ │ │ ├── fundrequest-title-sprite.png │ │ │ │ ├── headerimg.png │ │ │ │ ├── help-image.png │ │ │ │ ├── logo-single.png │ │ │ │ ├── logo-single16.png │ │ │ │ ├── logo-single180.png │ │ │ │ ├── logo-single32.png │ │ │ │ ├── metamask-gray.png │ │ │ │ ├── metamask-submit.png │ │ │ │ ├── metamask.png │ │ │ │ ├── og-image.png │ │ │ │ ├── overlays │ │ │ │ │ ├── 01.png │ │ │ │ │ ├── 02.png │ │ │ │ │ ├── 03.png │ │ │ │ │ ├── 04.png │ │ │ │ │ ├── 05.png │ │ │ │ │ ├── 06.png │ │ │ │ │ ├── 07.png │ │ │ │ │ ├── 08.png │ │ │ │ │ └── 09.png │ │ │ │ ├── powered-by-fundrequest-badge.svg │ │ │ │ ├── profile-avatar-color.png │ │ │ │ ├── profile-avatar-large.png │ │ │ │ ├── profile-avatar.png │ │ │ │ ├── providers.png │ │ │ │ ├── qr-code.svg │ │ │ │ ├── qrdummy.png │ │ │ │ ├── rect.png │ │ │ │ ├── rocketchat.png │ │ │ │ ├── scroll.png │ │ │ │ ├── scrollblue.png │ │ │ │ ├── section-5A.png │ │ │ │ ├── section-5B.png │ │ │ │ ├── svg │ │ │ │ │ ├── arrow_left.svg │ │ │ │ │ └── arrow_right.svg │ │ │ │ ├── tokens │ │ │ │ │ ├── dai.png │ │ │ │ │ ├── dock.png │ │ │ │ │ ├── fnd.png │ │ │ │ │ ├── ind.png │ │ │ │ │ ├── man.png │ │ │ │ │ ├── xsc.png │ │ │ │ │ ├── xuc.png │ │ │ │ │ └── zrx.png │ │ │ │ ├── trustwallet-next.png │ │ │ │ ├── trustwallet-qr.png │ │ │ │ ├── trustwallet-send-big.png │ │ │ │ ├── trustwallet-send.png │ │ │ │ ├── trustwallet.png │ │ │ │ └── unicorn-gray.png │ │ │ ├── js │ │ │ │ ├── abi │ │ │ │ │ ├── ApproveAndCallFallBack.json │ │ │ │ │ ├── BronzeInnovator.json │ │ │ │ │ ├── ClaimRepository.json │ │ │ │ │ ├── Controlled.json │ │ │ │ │ ├── DiamondInnovator.json │ │ │ │ │ ├── ERC20.json │ │ │ │ │ ├── FundRepository.json │ │ │ │ │ ├── FundRequestContract.json │ │ │ │ │ ├── FundRequestToken.json │ │ │ │ │ ├── FundRequestTokenGeneration.json │ │ │ │ │ ├── GoldInnovator.json │ │ │ │ │ ├── Migrations.json │ │ │ │ │ ├── MiniMeToken.json │ │ │ │ │ ├── MiniMeTokenFactory.json │ │ │ │ │ ├── Owned.json │ │ │ │ │ ├── Pausable.json │ │ │ │ │ ├── Precondition.json │ │ │ │ │ ├── SafeMath.json │ │ │ │ │ ├── SilverInnovator.json │ │ │ │ │ ├── TokenController.json │ │ │ │ │ ├── TokenWhitelistPrecondition.json │ │ │ │ │ └── strings.json │ │ │ │ ├── app │ │ │ │ │ └── DynamicContent.ts │ │ │ │ ├── classes │ │ │ │ │ ├── Alert.ts │ │ │ │ │ ├── ERC20ContractDef.ts │ │ │ │ │ ├── FundRequestContractDef.ts │ │ │ │ │ ├── Github.ts │ │ │ │ │ ├── Locations.ts │ │ │ │ │ ├── Utils.ts │ │ │ │ │ ├── Web3x.ts │ │ │ │ │ ├── contracts.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── open-link-in-popup.ts │ │ │ │ │ ├── payment-method.ts │ │ │ │ │ └── token-info.ts │ │ │ │ ├── index.ts │ │ │ │ ├── pages │ │ │ │ │ └── profile │ │ │ │ │ │ └── instant-edit.ts │ │ │ │ └── vue │ │ │ │ │ ├── EventBus.ts │ │ │ │ │ ├── components │ │ │ │ │ ├── Faq.vue │ │ │ │ │ ├── FaqItem.vue │ │ │ │ │ ├── Faucet.vue │ │ │ │ │ ├── FontSizeFit.vue │ │ │ │ │ ├── ListFilter.vue │ │ │ │ │ ├── ProjectCard.vue │ │ │ │ │ ├── ProjectsOverview.vue │ │ │ │ │ ├── RequestDetail.vue │ │ │ │ │ ├── RequestList.vue │ │ │ │ │ ├── RequestListItem.vue │ │ │ │ │ ├── RequestListItemPendingFunds.vue │ │ │ │ │ ├── RequestListPendingFunds.vue │ │ │ │ │ ├── StarredLink.vue │ │ │ │ │ ├── StatisticTile.vue │ │ │ │ │ ├── WizardComponent.vue │ │ │ │ │ └── form │ │ │ │ │ │ └── FndSelect.vue │ │ │ │ │ ├── dtos │ │ │ │ │ ├── FundsDto.ts │ │ │ │ │ ├── ListFilterDto.ts │ │ │ │ │ ├── RequestDto.ts │ │ │ │ │ ├── RequestFundsDto.ts │ │ │ │ │ └── RequestListItemPendingFundDto.ts │ │ │ │ │ ├── filters │ │ │ │ │ └── formatters │ │ │ │ │ │ ├── ToCrypto.ts │ │ │ │ │ │ ├── ToDatetime.ts │ │ │ │ │ │ └── ToUsd.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── models │ │ │ │ │ ├── PendingFundCommand.ts │ │ │ │ │ ├── ProjectOverviewDetail.ts │ │ │ │ │ ├── RequestList.ts │ │ │ │ │ └── RequestListFilter.ts │ │ │ │ │ └── vue-shims.d.ts │ │ │ └── scss │ │ │ │ ├── _core-helpers.scss │ │ │ │ ├── bootstrap.scss │ │ │ │ ├── core.scss │ │ │ │ ├── fundrequest │ │ │ │ ├── _alert.scss │ │ │ │ ├── _avatars.scss │ │ │ │ ├── _badges.scss │ │ │ │ ├── _bg.scss │ │ │ │ ├── _box-shadows.scss │ │ │ │ ├── _buttons.scss │ │ │ │ ├── _cards.scss │ │ │ │ ├── _changes.scss │ │ │ │ ├── _colors.scss │ │ │ │ ├── _data-tables.scss │ │ │ │ ├── _error.scss │ │ │ │ ├── _fa-mixins.scss │ │ │ │ ├── _faq.scss │ │ │ │ ├── _footer.scss │ │ │ │ ├── _form.scss │ │ │ │ ├── _header.scss │ │ │ │ ├── _imports.scss │ │ │ │ ├── _layout.scss │ │ │ │ ├── _lists.scss │ │ │ │ ├── _main-features.scss │ │ │ │ ├── _main-page-help.scss │ │ │ │ ├── _modals.scss │ │ │ │ ├── _navbar.scss │ │ │ │ ├── _profile.scss │ │ │ │ ├── _progress.scss │ │ │ │ ├── _rewards.scss │ │ │ │ ├── _sections.scss │ │ │ │ ├── _social.scss │ │ │ │ ├── _type.scss │ │ │ │ ├── _utilities.scss │ │ │ │ ├── _variables.scss │ │ │ │ ├── _wizard.scss │ │ │ │ ├── component-overrides │ │ │ │ │ ├── _imports.scss │ │ │ │ │ └── _v-select.scss │ │ │ │ ├── requests │ │ │ │ │ ├── _detail.scss │ │ │ │ │ ├── _general.scss │ │ │ │ │ ├── _imports.scss │ │ │ │ │ └── _list.scss │ │ │ │ ├── swal │ │ │ │ │ └── _swal.scss │ │ │ │ └── website │ │ │ │ │ ├── _alert.scss │ │ │ │ │ ├── _imports.scss │ │ │ │ │ ├── _layout.scss │ │ │ │ │ ├── _main.scss │ │ │ │ │ ├── _overrides.scss │ │ │ │ │ ├── _sections.scss │ │ │ │ │ └── _variables.scss │ │ │ │ ├── mdb-overrides │ │ │ │ ├── core │ │ │ │ │ ├── _color-classes.scss │ │ │ │ │ ├── _colors.scss │ │ │ │ │ └── _mixins.scss │ │ │ │ └── free │ │ │ │ │ ├── _buttons.scss │ │ │ │ │ └── _navbars.scss │ │ │ │ ├── mdb.scss │ │ │ │ ├── social-buttons │ │ │ │ ├── _button-icons.scss │ │ │ │ ├── _imports.scss │ │ │ │ ├── _social-buttons.scss │ │ │ │ └── mixins │ │ │ │ │ └── _icon-border.scss │ │ │ │ └── website.scss │ │ ├── tsconfig.json │ │ ├── tslint.json │ │ ├── webpack.config.base.js │ │ └── webpack.config.prod.js │ ├── java │ │ └── io │ │ │ └── fundrequest │ │ │ └── platform │ │ │ └── tweb │ │ │ ├── HomeController.java │ │ │ ├── WebApplication.java │ │ │ ├── actuator │ │ │ └── PublicEnvironmentEndpoint.java │ │ │ ├── config │ │ │ ├── AsyncConfig.java │ │ │ ├── AzraelJmsListenerConfig.java │ │ │ ├── CachingConfig.java │ │ │ ├── JacksonConfig.java │ │ │ ├── LocalSecurityConfig.java │ │ │ ├── SecurityConfig.java │ │ │ ├── ThymeleafConfig.java │ │ │ ├── ThymeleafSvgConfig.java │ │ │ └── WebConfig.java │ │ │ ├── faq │ │ │ └── FaqRestController.java │ │ │ ├── fund │ │ │ ├── FundController.java │ │ │ ├── FundRestController.java │ │ │ ├── PendingFundRestController.java │ │ │ └── RefundValidator.java │ │ │ ├── infrastructure │ │ │ └── thymeleaf │ │ │ │ ├── FundrequestDialect.java │ │ │ │ ├── FundrequestExpressionObjectFactory.java │ │ │ │ ├── FundsExpressionObject.java │ │ │ │ └── ProfilesExpressionObject.java │ │ │ ├── profile │ │ │ ├── ProfileController.java │ │ │ ├── bounty │ │ │ │ └── BountyController.java │ │ │ ├── mastery │ │ │ │ └── MasteryController.java │ │ │ └── referral │ │ │ │ └── ReferralController.java │ │ │ └── request │ │ │ ├── RequestController.java │ │ │ ├── RequestRestController.java │ │ │ ├── dto │ │ │ ├── ClaimView.java │ │ │ ├── ERC67FundDto.java │ │ │ ├── RequestDetailsView.java │ │ │ ├── RequestDetailsViewMapper.java │ │ │ ├── RequestDetailsViewMapperDecorator.java │ │ │ ├── RequestView.java │ │ │ └── RequestViewMapper.java │ │ │ └── messsaging │ │ │ └── AzraelMessageReceiver.java │ └── resources │ │ ├── application-credentials.properties.template │ │ ├── application-local.properties │ │ ├── application.properties │ │ ├── messages.properties │ │ └── templates │ │ ├── error.html │ │ ├── fragments │ │ ├── footer.html │ │ ├── head.html │ │ ├── header.html │ │ ├── intercom-script.html │ │ ├── modals │ │ │ └── fund.html │ │ ├── top.html │ │ └── widgets.html │ │ ├── index.html │ │ ├── layouts │ │ ├── default.html │ │ └── home.html │ │ ├── pages │ │ ├── fund │ │ │ ├── github.html │ │ │ └── index.html │ │ ├── profile │ │ │ ├── fragments │ │ │ │ ├── developer.html │ │ │ │ ├── header.html │ │ │ │ ├── mastery.html │ │ │ │ ├── referrals.html │ │ │ │ └── telegram.html │ │ │ ├── index.html │ │ │ ├── mastery.html │ │ │ └── rewards.html │ │ ├── requests │ │ │ ├── detail-actions.html │ │ │ ├── detail.html │ │ │ └── index.html │ │ └── user │ │ │ └── requests.html │ │ └── svg │ │ └── requests │ │ └── badge.svg │ └── test │ ├── java │ └── io │ │ └── fundrequest │ │ ├── AzraelMessageReceiverTest.java │ │ └── platform │ │ └── tweb │ │ ├── HomeControllerTest.java │ │ ├── actuator │ │ └── PublicEnvironmentEndpointTest.java │ │ ├── config │ │ └── ThymeleafSvgConfigTest.java │ │ ├── fund │ │ ├── FundControllerTest.java │ │ └── RefundValidatorTest.java │ │ ├── infrastructure │ │ ├── mav │ │ │ └── InitializerTest.java │ │ └── thymeleaf │ │ │ ├── FundrequestDialectTest.java │ │ │ ├── FundrequestExpressionObjectFactoryTest.java │ │ │ ├── FundsExpressionObjectTest.java │ │ │ └── ProfilesExpressionObjectTest.java │ │ ├── profile │ │ ├── ProfileControllerTest.java │ │ └── bounty │ │ │ └── BountyControllerTest.java │ │ └── request │ │ ├── RequestControllerTest.java │ │ ├── RequestRestControllerTest.java │ │ └── dto │ │ ├── RequestDetailsViewMapperDecoratorTest.java │ │ └── RequestViewMapperTest.java │ └── resources │ ├── application.properties │ └── logback-test.xml ├── twitter ├── pom.xml └── src │ ├── main │ └── java │ │ └── io │ │ └── fundrequest │ │ └── platform │ │ └── twitter │ │ ├── FundRequestTwitter.java │ │ ├── TweetRequestFundedHandler.java │ │ └── TwitterConfig.java │ └── test │ └── java │ └── io │ └── fundrequest │ └── platform │ └── twitter │ ├── TweetRequestFundedHandlerTemplateIntegrationTest.java │ └── TweetRequestFundedHandlerTest.java ├── update-datadog.sh └── vulnerabilities.md /.codeclimate.yml: -------------------------------------------------------------------------------- 1 | version: "2" # required to adjust maintainability checks 2 | checks: 3 | similar-code: 4 | config: 5 | threshold: 100 6 | plugins: 7 | sonar-java: 8 | enabled: true 9 | config: 10 | tests_patterns: 11 | - core/src/main/test/** 12 | - tweb/src/main/test/** 13 | - admin-web/src/main/test/** 14 | sonar.java.source: 8 15 | -------------------------------------------------------------------------------- /.github/issue_template.md: -------------------------------------------------------------------------------- 1 | ### Expected behaviour 2 | 3 | 4 | ### Actual behaviour 5 | 6 | 7 | ### Steps to reproduce the behaviour 8 | - 9 | -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.2/apache-maven-3.5.2-bin.zip -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: java 2 | jdk: 3 | - oraclejdk8 4 | cache: 5 | directories: 6 | - $HOME/.m2 7 | - tweb/src/main/frontend/node_modules 8 | - tweb/src/main/frontend/src/js/vue/node_modules 9 | node_js: "8.7.0" 10 | 11 | script: mvn -Dfeign.client.github.username=$FEIGN_CLIENT_GITHUB_USERNAME -Dfeign.client.github.password=$FEIGN_CLIENT_GITHUB_PASSWORD test -B 12 | 13 | after_success: 14 | - bash <(curl -s https://copilot.blackducksoftware.com/ci/travis/scripts/upload) -------------------------------------------------------------------------------- /admin-web/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM fundrequestio/alpine-jdk8-slim 2 | 3 | VOLUME /tmp 4 | ADD target/admin-web-0.0.1-SNAPSHOT.jar fundrequest-admin.jar 5 | RUN sh -c 'touch /fundrequest-admin.jar' && \ 6 | mkdir config 7 | 8 | ENV JAVA_OPTS="" 9 | 10 | EXPOSE 8080 11 | 12 | ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -Duser.timezone=UTC -jar /fundrequest-admin.jar" ] 13 | -------------------------------------------------------------------------------- /admin-web/src/main/java/io/fundrequest/platform/admin/notification/TargetPlatform.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.admin.notification; 2 | 3 | import lombok.Getter; 4 | 5 | @Getter 6 | public enum TargetPlatform { 7 | EMAIL("_email"), 8 | REDDIT("_reddit"); 9 | 10 | private String postfix; 11 | 12 | TargetPlatform(final String postfix) { 13 | this.postfix = postfix; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /admin-web/src/main/java/io/fundrequest/platform/admin/service/ModerationService.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.admin.service; 2 | 3 | import java.util.List; 4 | 5 | public interface ModerationService { 6 | 7 | void approve(Long id); 8 | 9 | List listPending(); 10 | 11 | List listFailed(); 12 | 13 | void decline(Long id); 14 | } 15 | -------------------------------------------------------------------------------- /admin-web/src/main/resources/application-credentials.properties.template: -------------------------------------------------------------------------------- 1 | feign.client.github.username= 2 | 3 | #create a developer access token on github: https://github.com/settings/tokens 4 | feign.client.github.password= 5 | 6 | local.ethereum.kovan.address= -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-brands-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-brands-400.eot -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-brands-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-brands-400.woff -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-light-300.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-light-300.eot -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-light-300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-light-300.ttf -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-light-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-light-300.woff -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-light-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-light-300.woff2 -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-regular-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-regular-400.eot -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-regular-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-regular-400.woff -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-solid-900.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-solid-900.eot -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-solid-900.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-solid-900.woff -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/fontawesome/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Bold.eot -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Bold.ttf -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Bold.woff -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Bold.woff2 -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Light.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Light.eot -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Light.ttf -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Light.woff -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Light.woff2 -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Medium.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Medium.eot -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Medium.ttf -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Medium.woff -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Medium.woff2 -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Regular.eot -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Regular.ttf -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Regular.woff -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Regular.woff2 -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Thin.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Thin.eot -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Thin.ttf -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Thin.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Thin.woff -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Thin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/roboto/Roboto-Thin.woff2 -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/typekit-jaf-domus/jaf-domus-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/typekit-jaf-domus/jaf-domus-400.ttf -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/typekit-jaf-domus/jaf-domus-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/typekit-jaf-domus/jaf-domus-400.woff -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/typekit-jaf-domus/jaf-domus-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/typekit-jaf-domus/jaf-domus-400.woff2 -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/typekit-jaf-domus/jaf-domus.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/typekit-jaf-domus/jaf-domus.ttf -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/typekit-jaf-domus/jaf-domus.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/typekit-jaf-domus/jaf-domus.woff -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/fonts/typekit-jaf-domus/jaf-domus.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/fonts/typekit-jaf-domus/jaf-domus.woff2 -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/Fundrequest-title-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/Fundrequest-title-white.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/Fundrequest-title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/Fundrequest-title.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/bg-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/bg-blue.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/bg-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/bg-green.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/error-page-img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/error-page-img.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/error.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/fundrequest-title-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/fundrequest-title-sprite.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/headerimg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/headerimg.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/logo-single.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/logo-single.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/logo-single16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/logo-single16.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/logo-single180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/logo-single180.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/logo-single32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/logo-single32.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/og-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/og-image.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/overlays/01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/overlays/01.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/overlays/02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/overlays/02.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/overlays/03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/overlays/03.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/overlays/04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/overlays/04.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/overlays/05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/overlays/05.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/overlays/06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/overlays/06.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/overlays/07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/overlays/07.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/overlays/08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/overlays/08.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/overlays/09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/overlays/09.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/profile-avatar-color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/profile-avatar-color.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/profile-avatar-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/profile-avatar-large.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/profile-avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/profile-avatar.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/rect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/rect.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/section-5A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/section-5A.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/section-5B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/section-5B.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/svg/arrow_left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/svg/arrow_right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/tokens/dock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/tokens/dock.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/tokens/fnd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/tokens/fnd.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/tokens/ind.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/tokens/ind.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/tokens/xsc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/tokens/xsc.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/tokens/xuc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/tokens/xuc.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/tokens/zrx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/tokens/zrx.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/img/unicorn-gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/img/unicorn-gray.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/js/fundrequest/general.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/js/fundrequest/general.js -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Bold.eot -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Bold.ttf -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Bold.woff -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Bold.woff2 -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Light.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Light.eot -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Light.ttf -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Light.woff -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Light.woff2 -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Medium.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Medium.eot -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Medium.ttf -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Medium.woff -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Medium.woff2 -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Regular.eot -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Regular.ttf -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Regular.woff -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Regular.woff2 -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Thin.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Thin.eot -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Thin.ttf -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Thin.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Thin.woff -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Thin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/font/roboto/Roboto-Thin.woff2 -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/img/overlays/01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/img/overlays/01.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/img/overlays/02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/img/overlays/02.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/img/overlays/03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/img/overlays/03.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/img/overlays/04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/img/overlays/04.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/img/overlays/05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/img/overlays/05.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/img/overlays/06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/img/overlays/06.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/img/overlays/07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/img/overlays/07.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/img/overlays/08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/img/overlays/08.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/img/overlays/09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/admin-web/src/main/resources/static/assets/vendors/mdbootstrap/img/overlays/09.png -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/img/svg/arrow_left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /admin-web/src/main/resources/static/assets/vendors/mdbootstrap/img/svg/arrow_right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /admin-web/src/main/resources/templates/fragments/footer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 13 |
14 | 15 | -------------------------------------------------------------------------------- /admin-web/src/main/resources/templates/messages/index.html: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 |
6 |

Messages

7 |
8 | 9 |

Referral

10 | 11 | Add 12 |
13 | 14 | -------------------------------------------------------------------------------- /admin-web/src/main/resources/templates/messages/type.html: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 |
6 |

Messages

7 |
8 | 9 |

Type

10 | 11 | Add Type message 12 |
13 | 14 | 15 | -------------------------------------------------------------------------------- /admin-web/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | logging.level.root=error 2 | spring.main.banner-mode=off -------------------------------------------------------------------------------- /admin-web/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /build.bat: -------------------------------------------------------------------------------- 1 | cd %~dp0 2 | npm install gulp 3 | mvnw.cmd clean install -DskipTests=true 4 | -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | BASEDIR=$(dirname "$0") 3 | cd "$BASEDIR" 4 | ./mvnw clean install -DskipTests=true 5 | -------------------------------------------------------------------------------- /common/src/main/java/io/fundrequest/common/infrastructure/IgnoreDuringComponentScan.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.common.infrastructure; 2 | 3 | public @interface IgnoreDuringComponentScan { 4 | } 5 | -------------------------------------------------------------------------------- /common/src/main/java/io/fundrequest/common/infrastructure/exception/ResourceNotFoundException.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.common.infrastructure.exception; 2 | 3 | import org.springframework.http.HttpStatus; 4 | import org.springframework.web.bind.annotation.ResponseStatus; 5 | 6 | @ResponseStatus(HttpStatus.NOT_FOUND) 7 | public class ResourceNotFoundException extends RuntimeException { 8 | } 9 | -------------------------------------------------------------------------------- /common/src/main/java/io/fundrequest/common/infrastructure/feign/BearerAuthRequestInterceptor.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.common.infrastructure.feign; 2 | 3 | import feign.RequestInterceptor; 4 | import feign.RequestTemplate; 5 | 6 | public class BearerAuthRequestInterceptor implements RequestInterceptor { 7 | 8 | private final String headerValue; 9 | 10 | public BearerAuthRequestInterceptor(final String bearerToken) { 11 | this.headerValue = "Bearer " + bearerToken; 12 | } 13 | 14 | @Override 15 | public void apply(final RequestTemplate requestTemplate) { 16 | requestTemplate.header("Authorization", this.headerValue); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /common/src/main/java/io/fundrequest/common/infrastructure/mapping/DefaultMappingConfig.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.common.infrastructure.mapping; 2 | 3 | import org.mapstruct.MapperConfig; 4 | import org.mapstruct.ReportingPolicy; 5 | 6 | @MapperConfig( 7 | unmappedTargetPolicy = ReportingPolicy.ERROR, 8 | componentModel = "spring" 9 | ) 10 | public interface DefaultMappingConfig { 11 | } -------------------------------------------------------------------------------- /common/src/main/java/io/fundrequest/common/infrastructure/mav/EnumToCapitalizedStringMapper.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.common.infrastructure.mav; 2 | 3 | import io.fundrequest.common.infrastructure.mapping.BaseMapper; 4 | import org.apache.commons.text.WordUtils; 5 | import org.springframework.stereotype.Component; 6 | 7 | @Component 8 | public class EnumToCapitalizedStringMapper implements BaseMapper { 9 | 10 | @Override 11 | public String map(final Enum anEnum) { 12 | if (anEnum == null) { 13 | return null; 14 | } 15 | return WordUtils.capitalizeFully(anEnum.name().replace('_', ' ')); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /common/src/main/java/io/fundrequest/common/infrastructure/mav/dto/AlertDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.common.infrastructure.mav.dto; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class AlertDto { 7 | private final String type; 8 | private final String msg; 9 | } 10 | -------------------------------------------------------------------------------- /common/src/main/java/io/fundrequest/common/infrastructure/mav/messaging/MessageType.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.common.infrastructure.mav.messaging; 2 | 3 | public enum MessageType { 4 | INFO, ALERT, ERROR, SUCCESS; 5 | } 6 | -------------------------------------------------------------------------------- /common/src/main/java/io/fundrequest/common/infrastructure/mav/util/HttpServletRequestProxy.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.common.infrastructure.mav.util; 2 | 3 | import org.springframework.beans.factory.annotation.Autowired; 4 | import org.springframework.stereotype.Component; 5 | 6 | import javax.servlet.http.HttpServletRequest; 7 | 8 | @Component 9 | public class HttpServletRequestProxy { 10 | private final HttpServletRequest request; 11 | 12 | @Autowired(required = false) 13 | public HttpServletRequestProxy(HttpServletRequest request) { 14 | this.request = request; 15 | } 16 | 17 | public HttpServletRequest getRequest() { 18 | return request; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/config/FeignConfig.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.config; 2 | 3 | import io.fundrequest.core.FundRequestCore; 4 | import org.springframework.cloud.netflix.feign.EnableFeignClients; 5 | import org.springframework.context.annotation.Configuration; 6 | 7 | @Configuration 8 | @EnableFeignClients(basePackageClasses = {FundRequestCore.class}) 9 | public class FeignConfig { 10 | } 11 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/identity/IdentityAPIClientDummy.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.identity; 2 | 3 | import org.keycloak.representations.idm.UserRepresentation; 4 | 5 | public class IdentityAPIClientDummy implements IdentityAPIClient { 6 | 7 | @Override 8 | public UserRepresentation findByIdentityProviderAndFederatedUsername(final String identityProvider, final String federatedUsername) { 9 | final UserRepresentation userRepresentation = new UserRepresentation(); 10 | userRepresentation.setId("rtykjgh"); 11 | userRepresentation.setEmail("mock@fundrequest.io"); 12 | return userRepresentation; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/infrastructure/SecurityContextService.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.infrastructure; 2 | 3 | import io.fundrequest.platform.profile.profile.dto.UserProfile; 4 | import org.springframework.security.core.Authentication; 5 | 6 | import java.util.Optional; 7 | 8 | public interface SecurityContextService { 9 | 10 | Optional getLoggedInUser(); 11 | 12 | boolean isUserFullyAuthenticated(); 13 | 14 | Optional getLoggedInUserProfile(); 15 | } 16 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/message/domain/MessageType.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.message.domain; 2 | 3 | public enum MessageType { 4 | REFERRAL_SHARE 5 | } -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/message/dto/MessageDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.message.dto; 2 | 3 | import io.fundrequest.core.message.domain.MessageType; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @Builder 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | public class MessageDto { 14 | private Long id; 15 | private String name; 16 | private MessageType type; 17 | private String title; 18 | private String description; 19 | private String link; 20 | } 21 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/platform/PlatformIssueDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.platform; 2 | 3 | import io.fundrequest.core.request.domain.Platform; 4 | import lombok.Builder; 5 | import lombok.EqualsAndHashCode; 6 | import lombok.Getter; 7 | 8 | @Builder 9 | @Getter 10 | @EqualsAndHashCode 11 | public class PlatformIssueDto { 12 | 13 | private Platform platform; 14 | private String platformId; 15 | private PlatformIssueStatus status; 16 | } 17 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/platform/PlatformIssueService.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.platform; 2 | 3 | import io.fundrequest.core.request.domain.Platform; 4 | 5 | import java.util.Optional; 6 | 7 | public interface PlatformIssueService { 8 | 9 | Optional findBy(Platform platform, String platformId); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/platform/PlatformIssueStatus.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.platform; 2 | 3 | public enum PlatformIssueStatus { 4 | OPEN, 5 | CLOSED 6 | } 7 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/BlockchainEventService.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request; 2 | 3 | import io.fundrequest.core.request.dto.BlockchainEventDto; 4 | 5 | import java.util.Optional; 6 | 7 | public interface BlockchainEventService { 8 | 9 | Optional findOne(Long id); 10 | } 11 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/claim/ClaimService.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.claim; 2 | 3 | import io.fundrequest.core.request.claim.dto.ClaimDto; 4 | import io.fundrequest.core.request.claim.dto.ClaimsByTransactionAggregate; 5 | 6 | import java.security.Principal; 7 | import java.util.Optional; 8 | 9 | public interface ClaimService { 10 | 11 | Optional findOne(Long id); 12 | 13 | void claim(Principal user, UserClaimRequest userClaimRequest); 14 | 15 | ClaimsByTransactionAggregate getAggregatedClaimsForRequest(long requestId); 16 | } 17 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/claim/SignedClaim.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.claim; 2 | 3 | import io.fundrequest.core.request.domain.Platform; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | 7 | @Data 8 | @Builder 9 | public class SignedClaim { 10 | private final String solver; 11 | private final String solverAddress; 12 | private final Platform platform; 13 | private final String platformId; 14 | private final String r; 15 | private final String s; 16 | private final Integer v; 17 | } 18 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/claim/command/ApproveRequestClaim.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.claim.command; 2 | 3 | public class ApproveRequestClaim { 4 | private Long requestClaimId; 5 | } 6 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/claim/domain/ClaimRequestStatus.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.claim.domain; 2 | 3 | public enum ClaimRequestStatus { 4 | PENDING, 5 | APPROVED, 6 | TRANSACTION_FAILED, 7 | DECLINED, 8 | PROCESSED 9 | } 10 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/claim/dto/AzraelClaimDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.claim.dto; 2 | 3 | public class AzraelClaimDto { 4 | private String platform; 5 | private String platformId; 6 | private String solver; 7 | private String solverAddress; 8 | } 9 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/claim/dto/ClaimByTransactionAggregate.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.claim.dto; 2 | 3 | import io.fundrequest.core.token.dto.TokenValueDto; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | 7 | import java.time.LocalDateTime; 8 | 9 | @Data 10 | @Builder(builderClassName = "Builder") 11 | public class ClaimByTransactionAggregate { 12 | 13 | private final String solver; 14 | private final TokenValueDto fndValue; 15 | private final TokenValueDto otherValue; 16 | private final LocalDateTime timestamp; 17 | private final String transactionHash; 18 | } 19 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/claim/dto/ClaimableResultDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.claim.dto; 2 | 3 | import io.fundrequest.core.request.domain.Platform; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @Builder 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | public class ClaimableResultDto { 14 | private boolean claimable; 15 | private Platform platform; 16 | private String claimableByPlatformUserName; 17 | } 18 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/claim/dto/ClaimsByTransactionAggregate.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.claim.dto; 2 | 3 | import io.fundrequest.core.token.dto.TokenValueDto; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | 7 | import java.util.List; 8 | 9 | @Data 10 | @Builder 11 | public class ClaimsByTransactionAggregate { 12 | 13 | private final List claims; 14 | private final TokenValueDto fndValue; 15 | private final TokenValueDto otherValue; 16 | private final Double usdValue; 17 | } 18 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/claim/dto/RequestClaimDtoMapper.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.claim.dto; 2 | 3 | import io.fundrequest.common.infrastructure.mapping.BaseMapper; 4 | import io.fundrequest.common.infrastructure.mapping.DefaultMappingConfig; 5 | import io.fundrequest.core.request.claim.domain.RequestClaim; 6 | import org.mapstruct.DecoratedWith; 7 | import org.mapstruct.Mapper; 8 | import org.mapstruct.ReportingPolicy; 9 | 10 | @Mapper(config = DefaultMappingConfig.class, unmappedTargetPolicy = ReportingPolicy.IGNORE) 11 | @DecoratedWith(RequestClaimDtoDecorator.class) 12 | public interface RequestClaimDtoMapper extends BaseMapper { 13 | } -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/claim/dto/UserClaimableDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.claim.dto; 2 | 3 | import lombok.Builder; 4 | import lombok.Data; 5 | 6 | @Data 7 | @Builder 8 | public class UserClaimableDto { 9 | private final boolean claimable; 10 | private final boolean claimableByLoggedInUser; 11 | private final String claimableByPlatformUserName; 12 | } 13 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/claim/event/ClaimRequestedEvent.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.claim.event; 2 | 3 | import io.fundrequest.core.request.claim.domain.RequestClaim; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | 7 | @Data 8 | public class ClaimRequestedEvent { 9 | 10 | private final RequestClaim requestClaim; 11 | 12 | @Builder 13 | public ClaimRequestedEvent(RequestClaim requestClaim) { 14 | this.requestClaim = requestClaim; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/claim/event/RequestClaimableEvent.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.claim.event; 2 | 3 | import io.fundrequest.core.request.view.RequestDto; 4 | import lombok.Data; 5 | 6 | import java.time.LocalDateTime; 7 | 8 | @Data 9 | public class RequestClaimableEvent { 10 | 11 | private final RequestDto requestDto; 12 | private final LocalDateTime timestamp; 13 | } 14 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/claim/event/RequestClaimedEvent.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.claim.event; 2 | 3 | import io.fundrequest.core.request.claim.dto.ClaimDto; 4 | import io.fundrequest.core.request.view.RequestDto; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | 8 | import java.time.LocalDateTime; 9 | 10 | @Data 11 | @Builder 12 | public class RequestClaimedEvent { 13 | private final Long blockchainEventId; 14 | private final RequestDto requestDto; 15 | private final ClaimDto claimDto; 16 | private final String solver; 17 | private final LocalDateTime timestamp; 18 | } 19 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/claim/infrastructure/ClaimRepository.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.claim.infrastructure; 2 | 3 | import io.fundrequest.core.infrastructure.repository.JpaRepository; 4 | import io.fundrequest.core.request.claim.domain.Claim; 5 | 6 | import java.util.List; 7 | 8 | public interface ClaimRepository extends JpaRepository { 9 | 10 | List findByRequestId(Long requestId); 11 | 12 | } 13 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/claim/infrastructure/TrustedRepoRepository.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.claim.infrastructure; 2 | 3 | import io.fundrequest.core.infrastructure.repository.JpaRepository; 4 | import io.fundrequest.core.request.claim.domain.TrustedRepo; 5 | 6 | public interface TrustedRepoRepository extends JpaRepository { 7 | } 8 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/command/UpdateRequestStatusCommand.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.command; 2 | 3 | import io.fundrequest.core.request.domain.RequestStatus; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.Getter; 6 | import lombok.RequiredArgsConstructor; 7 | 8 | @Getter 9 | @EqualsAndHashCode 10 | @RequiredArgsConstructor 11 | public class UpdateRequestStatusCommand { 12 | private final Long requestId; 13 | private final RequestStatus newStatus; 14 | } 15 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/domain/Platform.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.domain; 2 | 3 | import java.util.Arrays; 4 | import java.util.Optional; 5 | 6 | public enum Platform { 7 | GITHUB, 8 | STACK_OVERFLOW; 9 | 10 | 11 | public static Optional getPlatform(String platform) { 12 | return Arrays.stream(Platform.values()).filter(p -> p.toString().equalsIgnoreCase(platform)).findFirst(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/domain/RequestPhase.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.domain; 2 | 3 | public enum RequestPhase { 4 | OPEN, 5 | RESOLVED, 6 | CLOSED 7 | } 8 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/domain/RequestTechnology.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.domain; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import javax.persistence.Column; 9 | import javax.persistence.Embeddable; 10 | 11 | @Embeddable 12 | @Data 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @Builder 16 | public class RequestTechnology { 17 | 18 | @Column(name = "technology") 19 | private String technology; 20 | 21 | @Column(name = "weight") 22 | private Long weight; 23 | } 24 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/domain/RequestType.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.domain; 2 | 3 | public enum RequestType { 4 | ISSUE 5 | } 6 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/dto/BlockchainEventDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.time.LocalDateTime; 9 | 10 | @Data 11 | @Builder 12 | @NoArgsConstructor 13 | @AllArgsConstructor 14 | public class BlockchainEventDto { 15 | 16 | private Long id; 17 | private String transactionHash; 18 | private String logIndex; 19 | private LocalDateTime processDate; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/fiat/coinmarketcap/client/CoinMarketCapClient.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.fiat.coinmarketcap.client; 2 | 3 | import io.fundrequest.core.request.fiat.coinmarketcap.dto.listing.CmcListingsResult; 4 | 5 | public interface CoinMarketCapClient { 6 | 7 | CmcListingsResult getListings(); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/fiat/coinmarketcap/dto/listing/CmcListing.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.fiat.coinmarketcap.dto.listing; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | @Builder 13 | public class CmcListing { 14 | 15 | @JsonProperty("id") 16 | private Long id; 17 | 18 | @JsonProperty("symbol") 19 | private String symbol; 20 | 21 | @JsonProperty("quote") 22 | private CmcQuote quote; 23 | 24 | 25 | } 26 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/fiat/coinmarketcap/dto/listing/CmcListingsResult.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.fiat.coinmarketcap.dto.listing; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | import java.util.List; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | public class CmcListingsResult { 12 | 13 | @JsonProperty("data") 14 | private List listings; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/fiat/coinmarketcap/dto/listing/CmcQuote.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.fiat.coinmarketcap.dto.listing; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | @Builder 13 | public class CmcQuote { 14 | @JsonProperty("USD") 15 | private CmcQuotePrice usd; 16 | 17 | 18 | } 19 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/fiat/coinmarketcap/dto/listing/CmcQuotePrice.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.fiat.coinmarketcap.dto.listing; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @NoArgsConstructor 10 | @AllArgsConstructor 11 | @Builder 12 | public class CmcQuotePrice { 13 | private Double price; 14 | 15 | 16 | } 17 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/fiat/cryptocompare/client/CryptoCompareClient.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.fiat.cryptocompare.client; 2 | 3 | import io.fundrequest.core.request.fiat.cryptocompare.dto.PriceResultDto; 4 | 5 | public interface CryptoCompareClient { 6 | 7 | PriceResultDto getPrice(final String symbol); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/fiat/cryptocompare/dto/PriceResultDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.fiat.cryptocompare.dto; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @NoArgsConstructor 10 | @AllArgsConstructor 11 | public class PriceResultDto { 12 | 13 | @JsonProperty("EUR") 14 | private String EUR; 15 | @JsonProperty("USD") 16 | private String USD; 17 | @JsonProperty("BTC") 18 | private String BTC; 19 | @JsonProperty("ETH") 20 | private String ETH; 21 | } 22 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/fund/RefundProcessedEvent.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.fund; 2 | 3 | import io.fundrequest.core.request.fund.domain.Refund; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.Getter; 6 | import lombok.RequiredArgsConstructor; 7 | 8 | @Getter 9 | @RequiredArgsConstructor 10 | @EqualsAndHashCode 11 | public class RefundProcessedEvent { 12 | private final Refund refund; 13 | } 14 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/fund/UserFundsDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.fund; 2 | 3 | import io.fundrequest.core.token.dto.TokenValueDto; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | 7 | @Data 8 | @Builder 9 | public class UserFundsDto { 10 | 11 | private String funderAddress; 12 | private String funderUserId; 13 | private TokenValueDto fndFunds; 14 | private TokenValueDto otherFunds; 15 | private TokenValueDto fndRefunds; 16 | private TokenValueDto otherRefunds; 17 | 18 | public boolean hasRefunds() { 19 | return fndRefunds != null || otherRefunds != null; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/fund/command/PendingFundCommand.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.fund.command; 2 | 3 | import io.fundrequest.core.request.domain.Platform; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | @Builder 13 | public class PendingFundCommand { 14 | 15 | private String description; 16 | private String transactionId; 17 | private String fromAddress; 18 | private String amount; 19 | private String tokenAddress; 20 | private Platform platform; 21 | private String platformId; 22 | } 23 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/fund/command/RefundProcessedCommand.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.fund.command; 2 | 3 | import lombok.Builder; 4 | import lombok.Data; 5 | 6 | @Data 7 | @Builder 8 | public class RefundProcessedCommand { 9 | 10 | private final Long requestId; 11 | private final String funderAddress; 12 | private final String amount; 13 | private final String tokenHash; 14 | private final long blockchainEventId; 15 | private final String transactionHash; 16 | } -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/fund/command/RequestRefundCommand.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.fund.command; 2 | 3 | import lombok.Builder; 4 | import lombok.Data; 5 | 6 | @Data 7 | @Builder 8 | public class RequestRefundCommand { 9 | 10 | private final Long requestId; 11 | 12 | private final String funderAddress; 13 | 14 | private final String requestedBy; 15 | } 16 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/fund/domain/RefundRequestStatus.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.fund.domain; 2 | 3 | public enum RefundRequestStatus { 4 | PENDING, 5 | APPROVED, 6 | TRANSACTION_FAILED, 7 | DECLINED, 8 | PROCESSED 9 | } 10 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/fund/dto/CommentDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.fund.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.time.OffsetDateTime; 9 | 10 | @Data 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | @Builder 14 | public class CommentDto { 15 | private String userName; 16 | private String userUrl; 17 | private String userAvatar; 18 | private String title; 19 | private String body; 20 | private OffsetDateTime createdAt; 21 | } 22 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/fund/dto/FundDtoMapper.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.fund.dto; 2 | 3 | import io.fundrequest.common.infrastructure.mapping.BaseMapper; 4 | import io.fundrequest.common.infrastructure.mapping.DefaultMappingConfig; 5 | import io.fundrequest.core.request.fund.domain.Fund; 6 | import io.fundrequest.core.token.mapper.TokenValueDtoMapper; 7 | import org.mapstruct.Mapper; 8 | 9 | @Mapper(config = DefaultMappingConfig.class, 10 | uses = {TokenValueDtoMapper.class}) 11 | public interface FundDtoMapper extends BaseMapper { 12 | } -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/fund/dto/FundWithUserDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.fund.dto; 2 | 3 | import io.fundrequest.core.token.dto.TokenValueDto; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | 7 | import java.time.LocalDateTime; 8 | 9 | @Data 10 | @Builder 11 | public class FundWithUserDto { 12 | private String funder; 13 | private TokenValueDto fndFunds; 14 | private TokenValueDto otherFunds; 15 | private String funderAddress; 16 | private boolean isLoggedInUser; 17 | private boolean isRefund; 18 | private LocalDateTime timestamp; 19 | } 20 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/fund/dto/FundsByFunderDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.fund.dto; 2 | 3 | import io.fundrequest.core.token.dto.TokenValueDto; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | 7 | @Data 8 | @Builder 9 | public class FundsByFunderDto { 10 | private String funderAddress; 11 | private String funderUserId; 12 | private TokenValueDto fndValue; 13 | private TokenValueDto otherValue; 14 | } 15 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/fund/dto/FundsForRequestDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.fund.dto; 2 | 3 | import io.fundrequest.core.request.fund.UserFundsDto; 4 | import io.fundrequest.core.token.dto.TokenValueDto; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | 8 | import java.util.List; 9 | 10 | @Data 11 | @Builder 12 | public class FundsForRequestDto { 13 | 14 | private List userFunds; 15 | private TokenValueDto fndFunds; 16 | private TokenValueDto otherFunds; 17 | private Double usdFunds; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/fund/dto/RefundRequestDtoMapper.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.fund.dto; 2 | 3 | import io.fundrequest.common.infrastructure.mapping.BaseMapper; 4 | import io.fundrequest.common.infrastructure.mapping.DefaultMappingConfig; 5 | import io.fundrequest.core.request.fund.domain.RefundRequest; 6 | import org.mapstruct.Mapper; 7 | 8 | @Mapper(config = DefaultMappingConfig.class) 9 | public interface RefundRequestDtoMapper extends BaseMapper { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/fund/event/RequestFundedEvent.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.fund.event; 2 | 3 | import io.fundrequest.core.request.fund.dto.FundDto; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | 7 | import java.time.LocalDateTime; 8 | 9 | @Data 10 | @Builder 11 | public class RequestFundedEvent { 12 | private final FundDto fundDto; 13 | private final Long requestId; 14 | private final LocalDateTime timestamp; 15 | } 16 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/fund/infrastructure/PendingFundRepository.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.fund.infrastructure; 2 | 3 | import io.fundrequest.core.infrastructure.repository.JpaRepository; 4 | import io.fundrequest.core.request.fund.domain.PendingFund; 5 | 6 | import java.util.List; 7 | import java.util.Optional; 8 | 9 | public interface PendingFundRepository extends JpaRepository { 10 | 11 | Optional findByTransactionHash(String transactionHash); 12 | 13 | List findByUserId(String userId); 14 | } 15 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/fund/infrastructure/RefundRepository.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.fund.infrastructure; 2 | 3 | import io.fundrequest.core.infrastructure.repository.JpaRepository; 4 | import io.fundrequest.core.request.fund.domain.Refund; 5 | 6 | import java.util.List; 7 | 8 | public interface RefundRepository extends JpaRepository { 9 | 10 | List findAllByRequestId(long requestId); 11 | } 12 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/fund/infrastructure/TokenAmountDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.fund.infrastructure; 2 | 3 | import lombok.EqualsAndHashCode; 4 | import lombok.Getter; 5 | 6 | import java.math.BigDecimal; 7 | 8 | @Getter 9 | @EqualsAndHashCode 10 | public class TokenAmountDto { 11 | private final String tokenAddress; 12 | private final BigDecimal totalAmount; 13 | 14 | public TokenAmountDto(String tokenAddress, BigDecimal totalAmount) { 15 | this.tokenAddress = tokenAddress; 16 | this.totalAmount = totalAmount; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/fund/messaging/dto/ClaimedEthDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.fund.messaging.dto; 2 | 3 | import lombok.Data; 4 | import lombok.NoArgsConstructor; 5 | 6 | @Data 7 | @NoArgsConstructor 8 | public class ClaimedEthDto { 9 | private String transactionHash; 10 | private String logIndex; 11 | private String solverAddress; 12 | private String platform; 13 | private String platformId; 14 | private String solver; 15 | private String token; 16 | private String amount; 17 | private long timestamp; 18 | } 19 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/fund/messaging/dto/RefundedEthDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.fund.messaging.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @Builder 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class RefundedEthDto { 13 | 14 | private String transactionHash; 15 | private String logIndex; 16 | private String owner; 17 | private String platform; 18 | private String platformId; 19 | private String token; 20 | private String amount; 21 | private long timestamp; 22 | } -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/infrastructure/BlockchainEventRepository.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.infrastructure; 2 | 3 | import io.fundrequest.core.infrastructure.repository.JpaRepository; 4 | import io.fundrequest.core.request.domain.BlockchainEvent; 5 | 6 | import java.util.Optional; 7 | 8 | public interface BlockchainEventRepository extends JpaRepository { 9 | Optional findByTransactionHashAndLogIndex(String transactionHash, String logIndex); 10 | } 11 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/infrastructure/azrael/ClaimSignature.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.infrastructure.azrael; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class ClaimSignature { 7 | 8 | private String platform; 9 | private String platformId; 10 | private String solver; 11 | private String address; 12 | private String r; 13 | private String s; 14 | private Integer v; 15 | } 16 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/infrastructure/azrael/ClaimTransaction.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.infrastructure.azrael; 2 | 3 | import lombok.Builder; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | public class ClaimTransaction { 10 | private String transactionHash; 11 | 12 | @Builder 13 | public ClaimTransaction(String transactionHash) { 14 | this.transactionHash = transactionHash; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/infrastructure/azrael/RefundCommand.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.infrastructure.azrael; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @NoArgsConstructor 10 | @AllArgsConstructor 11 | @Builder 12 | public class RefundCommand { 13 | private String platform; 14 | private String platformId; 15 | private String address; 16 | } 17 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/infrastructure/azrael/RefundTransaction.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.infrastructure.azrael; 2 | 3 | import lombok.Builder; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Data 8 | @NoArgsConstructor 9 | public class RefundTransaction { 10 | 11 | private String transactionHash; 12 | 13 | @Builder 14 | public RefundTransaction(String transactionHash) { 15 | this.transactionHash = transactionHash; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/infrastructure/azrael/SignClaimCommand.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.infrastructure.azrael; 2 | 3 | import lombok.Builder; 4 | import lombok.Data; 5 | import org.hibernate.validator.constraints.NotEmpty; 6 | 7 | @Builder 8 | @Data 9 | public class SignClaimCommand { 10 | 11 | @NotEmpty 12 | private String platform; 13 | @NotEmpty 14 | private String platformId; 15 | @NotEmpty 16 | private String solver; 17 | @NotEmpty 18 | private String address; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/mapper/BlockchainEventDtoMapper.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.mapper; 2 | 3 | import io.fundrequest.common.infrastructure.mapping.BaseMapper; 4 | import io.fundrequest.common.infrastructure.mapping.DefaultMappingConfig; 5 | import io.fundrequest.core.request.domain.BlockchainEvent; 6 | import io.fundrequest.core.request.dto.BlockchainEventDto; 7 | import org.mapstruct.Mapper; 8 | 9 | @Mapper(config = DefaultMappingConfig.class) 10 | public interface BlockchainEventDtoMapper extends BaseMapper { 11 | } 12 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/statistics/StatisticsService.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.statistics; 2 | 3 | import io.fundrequest.core.request.statistics.dto.StatisticsDto; 4 | 5 | public interface StatisticsService { 6 | StatisticsDto getStatistics(); 7 | } 8 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/statistics/dto/StatisticsDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.statistics.dto; 2 | 3 | import lombok.Builder; 4 | import lombok.Data; 5 | 6 | @Data 7 | @Builder 8 | public class StatisticsDto { 9 | private final Double totalAvailableFunding; 10 | private final String mostFundedProject; 11 | private final String mostFundedTechnology; 12 | } 13 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/view/AllFundsDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.view; 2 | 3 | import io.fundrequest.core.token.dto.TokenValueDto; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @Builder 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | public class AllFundsDto { 14 | 15 | private TokenValueDto fndFunds; 16 | 17 | private TokenValueDto otherFunds; 18 | 19 | private Double usdFunds; 20 | } 21 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/view/ApproveAndCallDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.view; 2 | 3 | public class ApproveAndCallDto { 4 | 5 | 6 | } 7 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/request/view/IssueInformationDtoMapper.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.view; 2 | 3 | import io.fundrequest.common.infrastructure.mapping.BaseMapper; 4 | import io.fundrequest.common.infrastructure.mapping.DefaultMappingConfig; 5 | import io.fundrequest.core.request.domain.IssueInformation; 6 | import org.mapstruct.Mapper; 7 | 8 | @Mapper(config = DefaultMappingConfig.class) 9 | public interface IssueInformationDtoMapper extends BaseMapper { 10 | } 11 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/token/TokenInfoService.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.token; 2 | 3 | import io.fundrequest.core.token.dto.TokenInfoDto; 4 | 5 | public interface TokenInfoService { 6 | 7 | TokenInfoDto getTokenInfo(String tokenAddress); 8 | } 9 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/token/dto/TokenInfoDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.token.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @NoArgsConstructor 10 | @AllArgsConstructor 11 | @Builder 12 | public class TokenInfoDto { 13 | private String address; 14 | 15 | private String symbol; 16 | 17 | private String name; 18 | 19 | private int decimals; 20 | } 21 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/transactions/TransactionStatus.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.transactions; 2 | 3 | public enum TransactionStatus { 4 | NOT_FOUND, SUCCEEDED, FAILED 5 | } 6 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/user/UserService.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.user; 2 | 3 | import io.fundrequest.core.user.dto.UserDto; 4 | 5 | public interface UserService { 6 | UserDto getUser(String userId); 7 | 8 | @Deprecated 9 | UserAuthentication login(UserLoginCommand loginCommand); 10 | } 11 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/user/dto/UserDtoMapper.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.user.dto; 2 | 3 | import io.fundrequest.common.infrastructure.mapping.BaseMapper; 4 | import io.fundrequest.common.infrastructure.mapping.DefaultMappingConfig; 5 | import io.fundrequest.core.user.domain.User; 6 | import org.mapstruct.DecoratedWith; 7 | import org.mapstruct.Mapper; 8 | import org.mapstruct.ReportingPolicy; 9 | 10 | @Mapper(config = DefaultMappingConfig.class, unmappedTargetPolicy = ReportingPolicy.IGNORE) 11 | @DecoratedWith(UserDtoMapperDecorator.class) 12 | public interface UserDtoMapper extends BaseMapper { 13 | } 14 | 15 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/user/infrastructure/UserRepository.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.user.infrastructure; 2 | 3 | import io.fundrequest.core.infrastructure.repository.JpaRepository; 4 | import io.fundrequest.core.user.domain.User; 5 | 6 | public interface UserRepository extends JpaRepository { 7 | } 8 | -------------------------------------------------------------------------------- /core/src/main/java/io/fundrequest/core/web3j/AddressUtils.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.web3j; 2 | 3 | public class AddressUtils { 4 | public static String prettify(final String address) { 5 | if (!address.startsWith("0x")) { 6 | return "0x" + address; 7 | } else { 8 | return address; 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /core/src/test/java/io/fundrequest/core/infrastructure/AbstractRepositoryTest.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.infrastructure; 2 | 3 | import org.junit.runner.RunWith; 4 | import org.springframework.boot.autoconfigure.ImportAutoConfiguration; 5 | import org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration; 6 | import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; 7 | import org.springframework.test.context.junit4.SpringRunner; 8 | 9 | @RunWith(SpringRunner.class) 10 | @DataJpaTest(showSql = false) 11 | @ImportAutoConfiguration(FlywayAutoConfiguration.class) 12 | public abstract class AbstractRepositoryTest { 13 | } 14 | -------------------------------------------------------------------------------- /core/src/test/java/io/fundrequest/core/request/claim/UserClaimRequestMother.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.claim; 2 | 3 | import io.fundrequest.core.request.domain.Platform; 4 | 5 | public final class UserClaimRequestMother { 6 | 7 | public static UserClaimRequest.UserClaimRequestBuilder kazuki43zooApiStub() { 8 | return UserClaimRequest 9 | .builder() 10 | .platform(Platform.GITHUB) 11 | .platformId("kazuki43zoo|FR|api-stub|FR|42") 12 | .address("0x123f681646d4a755815f9cb19e1acc8565a0c2ac"); 13 | } 14 | } -------------------------------------------------------------------------------- /core/src/test/java/io/fundrequest/core/request/claim/domain/RequestClaimMother.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.claim.domain; 2 | 3 | public final class RequestClaimMother { 4 | 5 | public static RequestClaim.RequestClaimBuilder requestClaim() { 6 | return RequestClaim.builder() 7 | .id(1L) 8 | .status(ClaimRequestStatus.PENDING) 9 | .solver("davyvanroy") 10 | .requestId(1L) 11 | .address("0x0") 12 | .flagged(false); 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /core/src/test/java/io/fundrequest/core/request/infrastructure/github/parser/GithubResultMother.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.request.infrastructure.github.parser; 2 | 3 | public final class GithubResultMother { 4 | 5 | public static GithubResultBuilder kazuki43zooApiStub42() { 6 | return GithubResultBuilder.aGithubResult() 7 | .withNumber("42") 8 | .withState("open") 9 | .withId("198379346") 10 | .withTitle("Change to use Kotlin instead of Groovy on Mapper Interface"); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /core/src/test/java/io/fundrequest/core/user/domain/UserMother.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.core.user.domain; 2 | 3 | public final class UserMother { 4 | 5 | public static User davy() { 6 | return new User("112233", "davy@fundrequest.io"); 7 | } 8 | } -------------------------------------------------------------------------------- /core/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | logging.level.root=error 2 | spring.main.banner-mode=off 3 | spring.jpa.hibernate.ddl-auto=none 4 | logging.level.org.flywaydb=INFO -------------------------------------------------------------------------------- /core/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /db-migrate-new.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | dir=./db/src/main/resources/db/migration 3 | filename=V$(date +"%Y%m%d%H%M%S")__$1.sql 4 | touch $dir/$filename 5 | 6 | -------------------------------------------------------------------------------- /db/db-migrate-new.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | dir=./src/main/resources/db/migration 3 | filename=V$(date +"%Y%m%d%H%M%S")__$1.sql 4 | touch $dir/$filename 5 | 6 | -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20170404205600__request.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE request ( 2 | id BIGINT NOT NULL AUTO_INCREMENT, 3 | creation_date TIMESTAMP, 4 | last_modified_date TIMESTAMP, 5 | created_by VARCHAR(1000), 6 | last_modified_by VARCHAR(1000), 7 | issue_link VARCHAR(2000), 8 | label VARCHAR(2000), 9 | status VARCHAR(50), 10 | type VARCHAR(50), 11 | source VARCHAR(50), 12 | PRIMARY KEY (id) 13 | ); 14 | -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20170414221852__refactor_request_with_parsed_github.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE request 2 | CHANGE label title VARCHAR(2000); 3 | 4 | ALTER TABLE request 5 | ADD COLUMN owner VARCHAR(250); 6 | 7 | ALTER TABLE request 8 | ADD COLUMN repo VARCHAR(250); 9 | 10 | ALTER TABLE request 11 | ADD COLUMN issue_number VARCHAR(100); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20170415214138__add_watchers_to_request.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE request_watcher ( 2 | request_id BIGINT, 3 | email VARCHAR(150), 4 | PRIMARY KEY (request_id, email), 5 | CONSTRAINT fk_watcher_request FOREIGN KEY (request_id) REFERENCES request (id) 6 | ); 7 | 8 | CREATE INDEX idx_watcher_01 9 | ON request_watcher (request_id); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20170415215909__url_unique_for_requests.sql: -------------------------------------------------------------------------------- 1 | DELETE FROM request_watcher; 2 | DELETE FROM request; 3 | 4 | ALTER TABLE request MODIFY issue_link VARCHAR(150); 5 | 6 | CREATE UNIQUE INDEX idx_request_01 7 | ON request (issue_link); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20170424214331__add_technologies_to_request.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE request_technology ( 2 | request_id BIGINT, 3 | technology VARCHAR(150), 4 | PRIMARY KEY (request_id, technology), 5 | CONSTRAINT fk_technology_request FOREIGN KEY (request_id) REFERENCES request (id) 6 | ); 7 | 8 | CREATE INDEX idx_request_technology_01 9 | ON request_technology (request_id); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20170922214645__add_funds_to_request.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE fund 2 | ( 3 | id BIGINT PRIMARY KEY AUTO_INCREMENT, 4 | funder TEXT NOT NULL, 5 | amount_in_wei NUMERIC(50) NOT NULL, 6 | request_id BIGINT NOT NULL, 7 | CONSTRAINT fund_request_id_fk FOREIGN KEY (request_id) REFERENCES request (id) 8 | ); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20170923130743__add_creation_date_to_fund.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE fund 2 | ADD creation_date TIMESTAMP; 3 | ALTER TABLE fund 4 | ADD last_modified_date TIMESTAMP; 5 | ALTER TABLE fund 6 | ADD created_by VARCHAR(1000); 7 | ALTER TABLE fund 8 | ADD last_modified_by VARCHAR(1000); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20171011151937__add_user_table.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE user ( 2 | id VARCHAR(100), 3 | creation_date TIMESTAMP, 4 | last_modified_date TIMESTAMP, 5 | created_by VARCHAR(1000), 6 | last_modified_by VARCHAR(1000), 7 | email VARCHAR(200), 8 | phone_number VARCHAR(200), 9 | PRIMARY KEY (id) 10 | ); 11 | -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20171017233048__create_event_trace_table.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE processed_blockchain_event ( 2 | transaction_hash VARCHAR(150), 3 | process_date TIMESTAMP, 4 | PRIMARY KEY (transaction_hash) 5 | ); 6 | -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20171121160018__add_notifications.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE notification ( 2 | id BIGINT PRIMARY KEY AUTO_INCREMENT, 3 | notification_date TIMESTAMP, 4 | type VARCHAR(50), 5 | request_id BIGINT, 6 | fund_id BIGINT 7 | ); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20171121201047__create_desc_index_on_date_notifications.sql: -------------------------------------------------------------------------------- 1 | CREATE INDEX idx_notification_01 2 | ON notification (notification_date DESC) ; -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20171212154831__add_platform_id_to_request.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE request 2 | ADD platform_id VARCHAR(50); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20171212154925__rename_sourc_to_platform.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE request 2 | CHANGE COLUMN source platform VARCHAR (50); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20171218135830__funder_nullable_in_funds.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE fund 2 | MODIFY funder TEXT NULL; -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20171227215240__add_timestamp_to_funds.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE fund 2 | ADD time_stamp TIMESTAMP; -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180112141300__add_request_claimed_notification.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE notification 2 | ADD solver VARCHAR(200); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180122204829__add_claim_table.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE claim 2 | ( 3 | id BIGINT PRIMARY KEY AUTO_INCREMENT, 4 | solver TEXT NOT NULL, 5 | amount_in_wei NUMERIC(50) NOT NULL, 6 | request_id BIGINT NOT NULL, 7 | time_stamp TIMESTAMP, 8 | CONSTRAINT claim_request_id_fk FOREIGN KEY (request_id) REFERENCES request (id) 9 | ); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180123135108__add_transaction_id_to_notification.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE notification 2 | ADD transaction_id VARCHAR(70); 3 | -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180220133022__create_claim_request_table.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE request_claim 2 | ( 3 | id BIGINT PRIMARY KEY AUTO_INCREMENT, 4 | creation_date TIMESTAMP, 5 | last_modified_date TIMESTAMP, 6 | created_by VARCHAR(1000), 7 | last_modified_by VARCHAR(1000), 8 | solver VARCHAR(1000) NOT NULL, 9 | address VARCHAR(50) NOT NULL, 10 | status VARCHAR(50) NOT NULL, 11 | request_id BIGINT NOT NULL, 12 | flagged NUMERIC NOT NULL, 13 | CONSTRAINT request_claim_request_fk FOREIGN KEY (request_id) REFERENCES request (id) 14 | ); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180223093707__add_idx01_to_request_claim_table.sql: -------------------------------------------------------------------------------- 1 | CREATE INDEX idx_request_claim_01 2 | ON request_claim (status); 3 | 4 | CREATE INDEX idx_request_claim_02 5 | ON request_claim (creation_date ASC); 6 | 7 | CREATE INDEX idx_request_claim_03 8 | ON request_claim (last_modified_date DESC); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180228120721__twitter_bounties.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE twitter_bounties ( 2 | id BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY, 3 | start_date DATETIME NOT NULL DEFAULT now(), 4 | end_date DATETIME DEFAULT NULL, 5 | type VARCHAR(20) NOT NULL, 6 | follow_account VARCHAR(100) DEFAULT NULL, 7 | required_posts INT DEFAULT 1 8 | ); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180228131739__create_referral.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE referral ( 2 | id BIGINT NOT NULL AUTO_INCREMENT, 3 | referrer VARCHAR(100), 4 | referee VARCHAR(100), 5 | PRIMARY KEY (id) 6 | ); 7 | 8 | CREATE UNIQUE INDEX idx_referral_01 9 | ON referral (referrer, referee); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180228153626__twitter_posts.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE twitter_posts ( 2 | id BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY, 3 | content TEXT NOT NULL, 4 | verification_text TEXT NOT NULL 5 | ); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180228160126__add_bounty_table.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE bounty ( 2 | id BIGINT NOT NULL AUTO_INCREMENT, 3 | user_id VARCHAR(100), 4 | type VARCHAR(100), 5 | status VARCHAR(100), 6 | PRIMARY KEY (id) 7 | ); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180228170846__twitter_bounty_fulfillments.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE twitter_bounty_fulfillments ( 2 | id BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY, 3 | username VARCHAR(100) NOT NULL, 4 | user_id VARCHAR(100) NOT NULL, 5 | bounty_id BIGINT(20) NOT NULL, 6 | fulfillment_date DATETIME NOT NULL, 7 | FOREIGN KEY (bounty_id) REFERENCES twitter_bounties (id) 8 | ); 9 | 10 | 11 | -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180228205315__add_github_bounty.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE github_bounty ( 2 | id BIGINT NOT NULL AUTO_INCREMENT, 3 | user_id VARCHAR(100), 4 | github_id VARCHAR(100), 5 | created_at TIMESTAMP, 6 | location VARCHAR(300), 7 | valid NUMERIC, 8 | PRIMARY KEY (id) 9 | ); 10 | 11 | CREATE UNIQUE INDEX idx_github_bounty_01 12 | ON github_bounty (user_id); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180301114628__twitter_posts.sql: -------------------------------------------------------------------------------- 1 | INSERT INTO twitter_posts (content, verification_text) 2 | VALUES ( 'Nice, @fundrequest_io can now be tracked on @BlockfolioApp! #opensource', 'can now be tracked on'); 3 | 4 | INSERT INTO twitter_posts (content, verification_text) 5 | VALUES ( 'Nice, @fundrequest_io can now be tracked on @get_delta! #opensource', 'can now be tracked on'); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180301121619__create_first_twitter_bounty.sql: -------------------------------------------------------------------------------- 1 | insert into twitter_bounties (start_date, type, follow_account) 2 | values(now(), 'TWEET', 'fundrequest_io'); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180302104835__add_stack_overflow_bounty.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE stack_overflow_bounty ( 2 | id BIGINT NOT NULL AUTO_INCREMENT, 3 | user_id VARCHAR(100), 4 | stack_overflow_id VARCHAR(100), 5 | image VARCHAR(1500), 6 | reputation NUMERIC, 7 | display_name VARCHAR(300), 8 | created_at TIMESTAMP, 9 | valid NUMERIC, 10 | PRIMARY KEY (id) 11 | ); 12 | 13 | CREATE UNIQUE INDEX idx_stack_overflow_bounty_01 14 | ON stack_overflow_bounty (user_id); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180302114741__add_unique_referee.sql: -------------------------------------------------------------------------------- 1 | CREATE UNIQUE INDEX idx_referral_02 2 | ON referral (referee); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180302140511__add_auditing_to_referral.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE referral 2 | ADD COLUMN creation_date TIMESTAMP; 3 | ALTER TABLE referral 4 | ADD COLUMN last_modified_date TIMESTAMP; 5 | ALTER TABLE referral 6 | ADD COLUMN created_by VARCHAR(100); 7 | ALTER TABLE referral 8 | ADD COLUMN last_modified_by VARCHAR(100); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180302140615__add_auditing_to_bounty.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE bounty 2 | ADD creation_date TIMESTAMP; 3 | ALTER TABLE bounty 4 | ADD last_modified_date TIMESTAMP; 5 | ALTER TABLE bounty 6 | ADD created_by VARCHAR(100); 7 | ALTER TABLE bounty 8 | ADD last_modified_by VARCHAR(100); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180302140645__add_auditing_to_github_bounty.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE github_bounty 2 | ADD creation_date TIMESTAMP; 3 | ALTER TABLE github_bounty 4 | ADD last_modified_date TIMESTAMP; 5 | ALTER TABLE github_bounty 6 | ADD created_by VARCHAR(100); 7 | ALTER TABLE github_bounty 8 | ADD last_modified_by VARCHAR(100); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180302140657__add_auditing_to_stackoverflow_bounty.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE stack_overflow_bounty 2 | ADD creation_date TIMESTAMP; 3 | ALTER TABLE stack_overflow_bounty 4 | ADD last_modified_date TIMESTAMP; 5 | ALTER TABLE stack_overflow_bounty 6 | ADD created_by VARCHAR(100); 7 | ALTER TABLE stack_overflow_bounty 8 | ADD last_modified_by VARCHAR(100); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180302153118__telegram_verification.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE telegram_verifications ( 2 | id BIGINT(20) AUTO_INCREMENT NOT NULL PRIMARY KEY, 3 | telegram_name VARCHAR(100) NOT NULL, 4 | secret VARCHAR(40) NOT NULL, 5 | verified BOOL DEFAULT FALSE, 6 | last_action DATETIME DEFAULT NULL 7 | ); 8 | 9 | INSERT INTO telegram_verifications ( 10 | telegram_name, secret 11 | ) VALUES ('QuintenDes', 'QDS_FTW'); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180302210651__add_status_to_referral.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE referral 2 | ADD status VARCHAR(20); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180305162840__remove_telegramName_add_user_id.sql: -------------------------------------------------------------------------------- 1 | DELETE FROM telegram_verifications 2 | WHERE telegram_name LIKE 'QuintenDes'; 3 | 4 | ALTER TABLE telegram_verifications 5 | ADD COLUMN user_id VARCHAR(100); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180305165910__add_linkedin_verficiations.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE linkedin_verification ( 2 | id BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY, 3 | user_id VARCHAR(100), 4 | post_url VARCHAR(500) 5 | ); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180306124511__add_survey_table.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE survey ( 2 | id BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY, 3 | user_id VARCHAR(100), 4 | email VARCHAR(150), 5 | status VARCHAR(50), 6 | ether_address VARCHAR(100) 7 | ); 8 | 9 | CREATE UNIQUE INDEX idx_survey_01 10 | ON survey (email); 11 | CREATE UNIQUE INDEX idx_survey_02 12 | ON survey (user_id); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180316103403__create_trusted_repos.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE trusted_repo ( 2 | id BIGINT PRIMARY KEY AUTO_INCREMENT, 3 | owner VARCHAR(100) 4 | ); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180405135519__add_token_to_funds.sql: -------------------------------------------------------------------------------- 1 | alter table fund 2 | add token varchar(50); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180405135806__create_token_info.sql: -------------------------------------------------------------------------------- 1 | create table token_info ( 2 | address varchar(50) PRIMARY KEY, 3 | symbol varchar(10), 4 | name varchar(50), 5 | decimals numeric 6 | ); 7 | -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180411154019__remove_token_info.sql: -------------------------------------------------------------------------------- 1 | drop table token_info; -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180417105752__DDL_create_pending_funds.sql: -------------------------------------------------------------------------------- 1 | create table pending_funds ( 2 | id BIGINT PRIMARY KEY AUTO_INCREMENT, 3 | transaction_hash varchar(66) default null, 4 | description text default null, 5 | address_from varchar(42) default null, 6 | amount varchar(100) default 0, 7 | token_address varchar(42) default null, 8 | time_submitted timestamp default now(), 9 | user_id text not null 10 | ); 11 | 12 | 13 | create unique index idx_tx_hash_pending_funds 14 | on pending_funds (transaction_hash); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180418104315__add_funder_info_to_funds_table.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE fund 2 | ADD funder_address VARCHAR(42) DEFAULT NULL; -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180418105556__DDL_add_platform_and_platformId.sql: -------------------------------------------------------------------------------- 1 | alter table pending_funds 2 | add column platform varchar(20) not null; 3 | 4 | alter table pending_funds 5 | add column platform_id text not null; -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180418133833__add_index_to_pending_funds.sql: -------------------------------------------------------------------------------- 1 | CREATE INDEX idx_pending_fund_01 2 | ON pending_funds (transaction_hash); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180418152419__add_index_to_fund.sql: -------------------------------------------------------------------------------- 1 | CREATE OR REPLACE index idx_fund_01 2 | ON fund (funder_address); 3 | 4 | CREATE OR REPLACE index idx_fund_02 5 | ON fund (request_id); 6 | -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180419144220__add_issue_info_to_pending_fund.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE pending_funds 2 | ADD owner VARCHAR(250); 3 | 4 | ALTER TABLE pending_funds 5 | ADD repo VARCHAR(250); 6 | 7 | ALTER TABLE pending_funds 8 | ADD issue_number VARCHAR(100); 9 | 10 | ALTER TABLE pending_funds 11 | ADD title VARCHAR(2000); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180423134531__add_funder_user_id_to_fund.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE fund 2 | ADD funder_user_id VARCHAR(100); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180424145706__add_index_on_request.sql: -------------------------------------------------------------------------------- 1 | CREATE OR REPLACE INDEX idx_request_02 2 | ON request (status); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180426134211__add_weight_to_languages.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE request_technology 2 | ADD weight DECIMAL(32); 3 | 4 | UPDATE request_technology 5 | SET weight = 1; -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180426155703__alter_platformid_to_text.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE request 2 | MODIFY COLUMN platform_id TEXT; -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180502200640__add_audit_columns.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE claim 2 | ADD creation_date TIMESTAMP; 3 | ALTER TABLE claim 4 | ADD last_modified_date TIMESTAMP; 5 | ALTER TABLE claim 6 | ADD created_by VARCHAR(100); 7 | ALTER TABLE claim 8 | ADD last_modified_by VARCHAR(100); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180507093304__add_transaction_hash_to_survey.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE survey 2 | ADD COLUMN transaction_hash VARCHAR(100); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180507105401__add_transaction_hash_to_bounty.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE bounty 2 | ADD COLUMN transaction_hash VARCHAR(100); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180509111249__date_to_pending_fund.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE pending_funds 2 | ADD creation_date TIMESTAMP; 3 | ALTER TABLE pending_funds 4 | ADD last_modified_date TIMESTAMP; 5 | ALTER TABLE pending_funds 6 | ADD created_by VARCHAR(100); 7 | ALTER TABLE pending_funds 8 | ADD last_modified_by VARCHAR(100); -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180509120917__transactionhash_in_requestclaim.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE request_claim 2 | ADD COLUMN transaction_hash VARCHAR(66) DEFAULT NULL; 3 | 4 | ALTER TABLE request_claim 5 | ADD COLUMN transaction_submit_time DATETIME DEFAULT NULL; -------------------------------------------------------------------------------- /db/src/main/resources/db/migration/V20180528133239__align_fund_with_claim.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE fund CHANGE token token_hash VARCHAR(50); -------------------------------------------------------------------------------- /faq/src/main/java/io/fundrequest/platform/faq/FAQService.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.faq; 2 | 3 | import io.fundrequest.platform.faq.model.FaqItemsDto; 4 | 5 | public interface FAQService { 6 | FaqItemsDto getFAQsForPage(String pageName); 7 | } 8 | -------------------------------------------------------------------------------- /faq/src/main/java/io/fundrequest/platform/faq/model/FaqItemDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.faq.model; 2 | 3 | 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @Builder 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | public class FaqItemDto { 14 | private String title; 15 | private String body; 16 | } 17 | -------------------------------------------------------------------------------- /faq/src/main/java/io/fundrequest/platform/faq/model/FaqItemsDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.faq.model; 2 | 3 | 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.util.List; 10 | 11 | @Data 12 | @Builder 13 | @NoArgsConstructor 14 | @AllArgsConstructor 15 | public class FaqItemsDto { 16 | private String subtitle; 17 | private List faqItems; 18 | } 19 | -------------------------------------------------------------------------------- /faq/src/main/java/io/fundrequest/platform/faq/parser/Faq.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.faq.parser; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @Builder 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class Faq { 13 | private String title; 14 | private String filePath; 15 | } -------------------------------------------------------------------------------- /faq/src/main/java/io/fundrequest/platform/faq/parser/Faqs.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.faq.parser; 2 | 3 | import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.util.List; 10 | 11 | @Data 12 | @Builder 13 | @NoArgsConstructor 14 | @AllArgsConstructor 15 | public class Faqs { 16 | @JacksonXmlProperty(localName = "page") 17 | private List pages; 18 | } -------------------------------------------------------------------------------- /faq/src/main/java/io/fundrequest/platform/faq/parser/Page.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.faq.parser; 2 | 3 | import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | import java.util.List; 10 | 11 | @Data 12 | @Builder 13 | @NoArgsConstructor 14 | @AllArgsConstructor 15 | public class Page { 16 | 17 | @JacksonXmlProperty(isAttribute = true) 18 | private String name; 19 | @JacksonXmlProperty(isAttribute = true) 20 | private String subtitle; 21 | @JacksonXmlProperty(localName = "faq") 22 | private List faqs; 23 | } -------------------------------------------------------------------------------- /faq/src/test/java/io/fundrequest/platform/faq/EmptyFAQServiceImplTest.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.faq; 2 | 3 | import org.junit.jupiter.api.Test; 4 | 5 | import static org.assertj.core.api.Assertions.assertThat; 6 | 7 | class EmptyFAQServiceImplTest { 8 | 9 | @Test 10 | void getFAQsForPage() { 11 | assertThat(new EmptyFAQServiceImpl().getFAQsForPage("").getFaqItems()).isEmpty(); 12 | } 13 | } -------------------------------------------------------------------------------- /github/src/main/java/io/fundrequest/platform/github/CreateGithubCommand.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.github; 2 | 3 | public class CreateGithubCommand { 4 | } 5 | -------------------------------------------------------------------------------- /github/src/main/java/io/fundrequest/platform/github/CreateGithubComment.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.github; 2 | 3 | public class CreateGithubComment { 4 | 5 | private String body; 6 | 7 | public String getBody() { 8 | return body; 9 | } 10 | 11 | public void setBody(String body) { 12 | this.body = body; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /github/src/main/java/io/fundrequest/platform/github/GithubScraperHealthCheckProperties.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.github; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @Builder 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class GithubScraperHealthCheckProperties { 13 | 14 | private String expectedSolver; 15 | private String expectedStatus; 16 | } 17 | -------------------------------------------------------------------------------- /github/src/main/java/io/fundrequest/platform/github/parser/GithubRateLimit.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.github.parser; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @Builder(builderMethodName = "with") 12 | public class GithubRateLimit { 13 | private int limit; 14 | private int remaining; 15 | private long reset; 16 | } 17 | -------------------------------------------------------------------------------- /github/src/main/java/io/fundrequest/platform/github/parser/GithubResult.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.github.parser; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @Builder 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | public class GithubResult { 14 | private String id; 15 | private String number; 16 | private String title; 17 | private String state; 18 | private String body; 19 | @JsonProperty("body_html") 20 | private String bodyHtml; 21 | private GithubUser user; 22 | } 23 | -------------------------------------------------------------------------------- /github/src/main/java/io/fundrequest/platform/github/scraper/GithubStatusResolver.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.github.scraper; 2 | 3 | import org.jsoup.nodes.Document; 4 | import org.springframework.stereotype.Component; 5 | 6 | @Component 7 | public class GithubStatusResolver { 8 | 9 | public String resolve(final Document document) { 10 | return document.select("#partial-discussion-header .State").first().text(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /github/src/main/java/io/fundrequest/platform/github/scraper/model/GithubIssue.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.github.scraper.model; 2 | 3 | import lombok.Builder; 4 | import lombok.Data; 5 | 6 | @Data 7 | @Builder 8 | public class GithubIssue { 9 | 10 | private final String owner; 11 | private final String repo; 12 | private final String number; 13 | private final String status; 14 | private final String solver; 15 | } 16 | -------------------------------------------------------------------------------- /github/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | logging.level.root=error 2 | spring.main.banner-mode=off 3 | hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=60000 4 | io.fundrequest.platform.base-path=https://fundrequest.test 5 | io.fundrequest.etherscan.basepath=https://kovan.etherscan.io 6 | -------------------------------------------------------------------------------- /github/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /gitter/src/main/java/io/fundrequest/platform/gitter/GitterRooms.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.gitter; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.List; 6 | 7 | @Data 8 | public class GitterRooms { 9 | 10 | private List fundedNotification; 11 | } 12 | -------------------------------------------------------------------------------- /intercom/src/main/java/io/fundrequest/platform/intercom/model/RichLink.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.intercom.model; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @Builder 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class RichLink { 13 | private String value; 14 | private String url; 15 | } -------------------------------------------------------------------------------- /keycloak/src/main/java/io/fundrequest/platform/keycloak/UserIdentity.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.keycloak; 2 | 3 | import lombok.Builder; 4 | import lombok.Data; 5 | 6 | @Data 7 | @Builder 8 | public class UserIdentity { 9 | private Provider provider; 10 | private String username; 11 | private String userId; 12 | 13 | } -------------------------------------------------------------------------------- /keycloak/src/main/java/io/fundrequest/platform/keycloak/dto/AccessTokenResult.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.keycloak.dto; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | public class AccessTokenResult { 8 | 9 | @JsonProperty("access_token") 10 | private String accessToken; 11 | } 12 | -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/logo.png -------------------------------------------------------------------------------- /notification-contract/src/main/java/io/fundrequest/notification/dto/NotificationDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.notification.dto; 2 | 3 | import lombok.Data; 4 | 5 | import java.time.LocalDateTime; 6 | 7 | @Data 8 | public abstract class NotificationDto { 9 | 10 | private final String uuid; 11 | private final NotificationType type; 12 | private final Long blockchainEventId; 13 | private final LocalDateTime date; 14 | } 15 | -------------------------------------------------------------------------------- /notification-contract/src/main/java/io/fundrequest/notification/dto/NotificationType.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.notification.dto; 2 | 3 | public enum NotificationType { 4 | REQUEST_FUNDED, 5 | REQUEST_CLAIMED 6 | } 7 | -------------------------------------------------------------------------------- /notification/src/main/java/io/fundrequest/notification/NotificationRepository.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.notification; 2 | 3 | import io.fundrequest.notification.domain.Notification; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface NotificationRepository extends JpaRepository { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /notification/src/test/java/io/fundrequest/notification/domain/RequestClaimedNotificationMother.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.notification.domain; 2 | 3 | import java.time.LocalDateTime; 4 | import java.util.UUID; 5 | 6 | public final class RequestClaimedNotificationMother { 7 | 8 | private RequestClaimedNotificationMother() {} 9 | 10 | public static RequestClaimedNotification aRequestClaimedNotification() { 11 | return new RequestClaimedNotification(UUID.randomUUID().toString(), LocalDateTime.now().minusDays(2), 546L, 1L, 245L); 12 | } 13 | } -------------------------------------------------------------------------------- /notification/src/test/java/io/fundrequest/notification/domain/RequestFundedNotificationMother.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.notification.domain; 2 | 3 | import java.time.LocalDateTime; 4 | import java.util.UUID; 5 | 6 | public final class RequestFundedNotificationMother { 7 | 8 | private RequestFundedNotificationMother() { } 9 | 10 | public static RequestFundedNotification aRequestFundedNotification() { 11 | return new RequestFundedNotification(UUID.randomUUID().toString(), 547L, LocalDateTime.now().minusDays(2), 858L, 36747L); 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/arkane/WalletsResult.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.arkane; 2 | 3 | import java.util.List; 4 | 5 | public class WalletsResult { 6 | private boolean success; 7 | private List result; 8 | 9 | public boolean isSuccess() { 10 | return success; 11 | } 12 | 13 | public void setSuccess(boolean success) { 14 | this.success = success; 15 | } 16 | 17 | public List getResult() { 18 | return result; 19 | } 20 | 21 | public void setResult(List result) { 22 | this.result = result; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/bounty/domain/BountyStatus.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.bounty.domain; 2 | 3 | public enum BountyStatus { 4 | PENDING, 5 | PAID 6 | } 7 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/bounty/domain/BountyType.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.bounty.domain; 2 | 3 | public enum BountyType { 4 | REFERRAL(5), 5 | LINK_GITHUB(15), 6 | LINK_STACK_OVERFLOW(10), 7 | POST_LINKEDIN_UPDATE(10), 8 | TWITTER_TWEET_FOLLOW(10), 9 | LINK_TELEGRAM(5), 10 | SURVEY(30); 11 | private final int reward; 12 | 13 | BountyType(int reward) { 14 | this.reward = reward; 15 | } 16 | 17 | public int getReward() { 18 | return reward; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/bounty/dto/BountyDTO.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.bounty.dto; 2 | 3 | import lombok.Builder; 4 | import lombok.Data; 5 | 6 | @Data 7 | @Builder 8 | public class BountyDTO { 9 | 10 | private long totalRewards; 11 | private long otherRewards; 12 | private long referralRewards; 13 | private long surveyRewards; 14 | private long telegramRewards; 15 | private long twitterRewards; 16 | private long linkedInRewards; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/bounty/dto/PaidBountyDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.bounty.dto; 2 | 3 | import io.fundrequest.platform.profile.bounty.domain.BountyType; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | 7 | @Data 8 | @Builder 9 | public class PaidBountyDto { 10 | private BountyType type; 11 | private int amount; 12 | private String transactionHash; 13 | } 14 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/bounty/event/CreateBountyCommand.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.bounty.event; 2 | 3 | import io.fundrequest.platform.profile.bounty.domain.BountyType; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | 7 | @Data 8 | @Builder 9 | public class CreateBountyCommand { 10 | private final String userId; 11 | private final BountyType type; 12 | } 13 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/bounty/infrastructure/BountyRepository.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.bounty.infrastructure; 2 | 3 | import io.fundrequest.platform.profile.bounty.domain.Bounty; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | import org.springframework.data.repository.query.Param; 6 | 7 | import java.util.List; 8 | 9 | public interface BountyRepository extends JpaRepository { 10 | List findByUserId(final @Param("userId") String userId); 11 | } 12 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/bounty/service/BountyService.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.bounty.service; 2 | 3 | import io.fundrequest.platform.profile.bounty.dto.BountyDTO; 4 | import io.fundrequest.platform.profile.bounty.dto.PaidBountyDto; 5 | import io.fundrequest.platform.profile.bounty.event.CreateBountyCommand; 6 | 7 | import java.security.Principal; 8 | import java.util.List; 9 | 10 | public interface BountyService { 11 | void createBounty(CreateBountyCommand createBountyCommand); 12 | 13 | 14 | BountyDTO getBounties(Principal principal); 15 | 16 | List getPaidBounties(Principal principal); 17 | } 18 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/config/ProfileFeignConfig.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.config; 2 | 3 | import io.fundrequest.platform.profile.ProfileApplication; 4 | import org.springframework.cloud.netflix.feign.EnableFeignClients; 5 | import org.springframework.context.annotation.Configuration; 6 | 7 | @Configuration 8 | @EnableFeignClients(basePackageClasses = {ProfileApplication.class}) 9 | public class ProfileFeignConfig { 10 | } 11 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/developer/verification/event/DeveloperVerified.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.developer.verification.event; 2 | 3 | import lombok.Builder; 4 | import lombok.Data; 5 | 6 | @Data 7 | @Builder 8 | public class DeveloperVerified { 9 | private String userId; 10 | } 11 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/github/GithubBountyService.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.github; 2 | 3 | import io.fundrequest.platform.profile.profile.dto.GithubVerificationDto; 4 | 5 | import java.security.Principal; 6 | 7 | public interface GithubBountyService { 8 | 9 | GithubVerificationDto getVerification(Principal principal); 10 | } 11 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/github/infrastructure/GithubBountyRepository.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.github.infrastructure; 2 | 3 | import io.fundrequest.platform.profile.github.domain.GithubBounty; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | import java.util.Optional; 7 | 8 | public interface GithubBountyRepository extends JpaRepository { 9 | boolean existsByUserId(String userId); 10 | 11 | Optional findByUserId(String userId); 12 | } 13 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/profile/dto/GithubVerificationDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.profile.dto; 2 | 3 | import lombok.Builder; 4 | import lombok.Data; 5 | 6 | import java.time.LocalDateTime; 7 | 8 | @Data 9 | @Builder 10 | public class GithubVerificationDto { 11 | private final LocalDateTime createdAt; 12 | private final boolean approved; 13 | } 14 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/profile/dto/IdentityProvider.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.profile.dto; 2 | 3 | import lombok.Builder; 4 | import lombok.Data; 5 | 6 | @Data 7 | @Builder 8 | public class IdentityProvider { 9 | private String username; 10 | } 11 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/profile/dto/UserLinkedProviderEvent.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.profile.dto; 2 | 3 | import io.fundrequest.platform.keycloak.Provider; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | 7 | import java.security.Principal; 8 | 9 | @Data 10 | @Builder 11 | public class UserLinkedProviderEvent { 12 | private final Principal principal; 13 | private final Provider provider; 14 | } 15 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/profile/dto/UserProfileProvider.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.profile.dto; 2 | 3 | import lombok.Builder; 4 | import lombok.Data; 5 | 6 | @Data 7 | @Builder 8 | public class UserProfileProvider { 9 | private String username; 10 | private String userId; 11 | } 12 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/profile/provider/ProviderProfileService.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.profile.provider; 2 | 3 | import io.fundrequest.platform.keycloak.Provider; 4 | import io.fundrequest.platform.profile.profile.dto.UserProfile; 5 | 6 | import java.security.Principal; 7 | 8 | public interface ProviderProfileService { 9 | Provider getProvider(); 10 | 11 | void userLinked(UserProfile userProfile); 12 | 13 | void claimBounty(Principal principal); 14 | } 15 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/ref/CreateRefCommand.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.ref; 2 | 3 | import lombok.Builder; 4 | import lombok.Data; 5 | 6 | import java.security.Principal; 7 | 8 | @Data 9 | @Builder 10 | public class CreateRefCommand { 11 | private Principal principal; 12 | private String ref; 13 | } 14 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/ref/RefSignupEvent.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.ref; 2 | 3 | import lombok.Builder; 4 | import lombok.Data; 5 | 6 | import java.security.Principal; 7 | 8 | @Data 9 | @Builder 10 | public class RefSignupEvent { 11 | private final Principal principal; 12 | private final String ref; 13 | } 14 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/ref/ReferralService.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.ref; 2 | 3 | import io.fundrequest.platform.profile.ref.dto.ReferralDto; 4 | import io.fundrequest.platform.profile.ref.dto.ReferralOverviewDto; 5 | 6 | import java.security.Principal; 7 | import java.util.List; 8 | 9 | public interface ReferralService { 10 | ReferralOverviewDto getOverview(Principal principal); 11 | 12 | String generateRefLink(String userId, String source); 13 | 14 | List getReferrals(Principal principal); 15 | 16 | void createNewRef(CreateRefCommand command); 17 | } 18 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/ref/domain/ReferralStatus.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.ref.domain; 2 | 3 | public enum ReferralStatus { 4 | PENDING, 5 | VERIFIED 6 | 7 | } 8 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/ref/dto/ReferralDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.ref.dto; 2 | 3 | import io.fundrequest.platform.profile.ref.domain.ReferralStatus; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | 7 | import java.time.LocalDateTime; 8 | 9 | @Data 10 | @Builder 11 | public class ReferralDto { 12 | 13 | private LocalDateTime createdAt; 14 | private ReferralStatus status; 15 | private String email; 16 | private String name; 17 | private String picture; 18 | } 19 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/ref/dto/ReferralOverviewDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.ref.dto; 2 | 3 | import lombok.Builder; 4 | import lombok.Data; 5 | 6 | @Data 7 | @Builder 8 | public class ReferralOverviewDto { 9 | private int totalVerified; 10 | private int totalUnverified; 11 | } 12 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/ref/dto/ShortUrlResult.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.ref.dto; 2 | 3 | import lombok.Data; 4 | import lombok.NoArgsConstructor; 5 | 6 | @Data 7 | @NoArgsConstructor 8 | public class ShortUrlResult { 9 | private String kind; 10 | private String id; 11 | private String longUrl; 12 | } 13 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/stackoverflow/StackOverflowBountyService.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.stackoverflow; 2 | 3 | import io.fundrequest.platform.profile.stackoverflow.dto.StackOverflowVerificationDto; 4 | 5 | import java.security.Principal; 6 | 7 | public interface StackOverflowBountyService { 8 | StackOverflowVerificationDto getVerification(Principal principal); 9 | } 10 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/stackoverflow/dto/StackOverflowResult.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.stackoverflow.dto; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | 7 | import java.util.List; 8 | 9 | @Data 10 | public class StackOverflowResult { 11 | 12 | @JsonProperty("items") 13 | private List users; 14 | 15 | StackOverflowResult() { 16 | } 17 | 18 | @Builder 19 | StackOverflowResult(List users) { 20 | this.users = users; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/stackoverflow/dto/StackOverflowVerificationDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.stackoverflow.dto; 2 | 3 | import lombok.Builder; 4 | import lombok.Data; 5 | 6 | import java.time.LocalDateTime; 7 | 8 | @Data 9 | @Builder 10 | public class StackOverflowVerificationDto { 11 | private final LocalDateTime createdAt; 12 | private final boolean approved; 13 | } 14 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/stackoverflow/infrastructure/StackOverflowBountyRepository.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.stackoverflow.infrastructure; 2 | 3 | import io.fundrequest.platform.profile.stackoverflow.domain.StackOverflowBounty; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | import java.util.Optional; 7 | 8 | public interface StackOverflowBountyRepository extends JpaRepository { 9 | 10 | Optional findByUserId(String userId); 11 | 12 | boolean existsByUserId(String userId); 13 | } 14 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/survey/domain/SurveyDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.survey.domain; 2 | 3 | import lombok.Builder; 4 | import lombok.Data; 5 | 6 | import java.time.LocalDateTime; 7 | 8 | @Builder 9 | @Data 10 | public class SurveyDto { 11 | private LocalDateTime completionDate; 12 | private SurveyStatus status; 13 | private String transactionHash; 14 | } 15 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/survey/domain/SurveyService.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.survey.domain; 2 | 3 | import java.security.Principal; 4 | 5 | public interface SurveyService { 6 | SurveyDto getSurveyResult(Principal principal); 7 | } 8 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/survey/domain/SurveyStatus.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.survey.domain; 2 | 3 | public enum SurveyStatus { 4 | UNVERIFIED, 5 | VERIFIED 6 | } 7 | -------------------------------------------------------------------------------- /profile/src/main/java/io/fundrequest/platform/profile/survey/infrastructue/SurveyRepository.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.survey.infrastructue; 2 | 3 | import io.fundrequest.platform.profile.survey.domain.Survey; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | import java.util.Optional; 7 | 8 | public interface SurveyRepository extends JpaRepository { 9 | Optional findByUserId(String userId); 10 | 11 | Optional findByEmail(String email); 12 | } 13 | -------------------------------------------------------------------------------- /profile/src/test/java/io/fundrequest/platform/profile/arkane/WalletMother.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.profile.arkane; 2 | 3 | public final class WalletMother { 4 | 5 | public static Wallet aWallet() { 6 | Wallet wallet = new Wallet(); 7 | wallet.setAddress("0x0000"); 8 | wallet.setDescription("description"); 9 | wallet.setId("id"); 10 | return wallet; 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /profile/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | logging.level.root=error 2 | spring.main.banner-mode=off -------------------------------------------------------------------------------- /profile/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /runAdmin.bat: -------------------------------------------------------------------------------- 1 | cd %~dp0 2 | java -Dspring.profiles.active="local" -jar ./admin-web/target/admin-web-0.0.1-SNAPSHOT.jar 3 | -------------------------------------------------------------------------------- /runAdmin.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | BASEDIR=$(dirname "$0") 3 | cd "$BASEDIR" 4 | java -Dspring.profiles.active="local" -jar ./admin-web/target/admin-web-0.0.1-SNAPSHOT.jar 5 | -------------------------------------------------------------------------------- /runDependencies.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | BASEDIR=$(dirname "$0") 4 | cd "$BASEDIR" 5 | cd core 6 | docker-compose up -------------------------------------------------------------------------------- /runPlatform.bat: -------------------------------------------------------------------------------- 1 | cd %~dp0 2 | java -Dspring.profiles.active="local" -jar ./tweb/target/tweb-0.0.1-SNAPSHOT.jar 3 | -------------------------------------------------------------------------------- /runPlatform.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | BASEDIR=$(dirname "$0") 3 | cd "$BASEDIR" 4 | java -Dspring.profiles.active="local" -jar ./tweb/target/tweb-0.0.1-SNAPSHOT.jar 5 | -------------------------------------------------------------------------------- /spring-social-gitter/src/main/java/io/fundrequest/social/gitter/api/Gitter.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.social.gitter.api; 2 | 3 | import org.springframework.social.ApiBinding; 4 | 5 | public interface Gitter extends ApiBinding { 6 | 7 | MessageResource messageResource(); 8 | 9 | RoomResource roomResource(); 10 | 11 | UserResource userResource(); 12 | } 13 | -------------------------------------------------------------------------------- /spring-social-gitter/src/main/java/io/fundrequest/social/gitter/api/Me.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.social.gitter.api; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class Me { 7 | private String id; 8 | private String username; 9 | private String displayName; 10 | private String url; 11 | private String avatarUrl; 12 | } 13 | -------------------------------------------------------------------------------- /spring-social-gitter/src/main/java/io/fundrequest/social/gitter/api/MessageResource.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.social.gitter.api; 2 | 3 | public interface MessageResource { 4 | void sendMessage(String roomId, String text); 5 | } 6 | -------------------------------------------------------------------------------- /spring-social-gitter/src/main/java/io/fundrequest/social/gitter/api/RoomResource.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.social.gitter.api; 2 | 3 | import java.util.List; 4 | 5 | public interface RoomResource { 6 | 7 | public List listRooms(); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /spring-social-gitter/src/main/java/io/fundrequest/social/gitter/api/RoomType.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.social.gitter.api; 2 | 3 | public enum RoomType { 4 | ORG, 5 | REPO, 6 | ONETOONE, 7 | ORG_CHANNEL, 8 | REPO_CHANNEL, 9 | USER_CHANNEL 10 | } 11 | -------------------------------------------------------------------------------- /spring-social-gitter/src/main/java/io/fundrequest/social/gitter/api/User.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.social.gitter.api; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class User { 7 | 8 | private String id; 9 | private String username; 10 | private String displayName; 11 | private String url; 12 | private String avatarUrlSmall; 13 | private String avatarUrlMedium; 14 | } 15 | -------------------------------------------------------------------------------- /spring-social-gitter/src/main/java/io/fundrequest/social/gitter/api/UserResource.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.social.gitter.api; 2 | 3 | public interface UserResource { 4 | 5 | Me me(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /spring-social-gitter/src/main/java/io/fundrequest/social/gitter/connect/GitterConnectionFactory.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.social.gitter.connect; 2 | 3 | import io.fundrequest.social.gitter.api.Gitter; 4 | import org.springframework.social.connect.support.OAuth2ConnectionFactory; 5 | 6 | public class GitterConnectionFactory extends OAuth2ConnectionFactory { 7 | 8 | public GitterConnectionFactory(final String consumerKey, final String consumerSecret) { 9 | super("gitter", new GitterServiceProvider(consumerKey, consumerSecret), new GitterAdapter()); 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /spring-social-gitter/src/test/resources/user/me.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "553d437215522ed4b3df8c50", 3 | "username": "MadLittleMods", 4 | "displayName": "Eric Eastwood", 5 | "url": "/MadLittleMods", 6 | "avatarUrl": "https://avatars-05.gitter.im/gh/uv/3/MadLittleMods", 7 | "staff": true, 8 | "providers": [ 9 | "github" 10 | ], 11 | "v": 8, 12 | "gv": "3" 13 | } -------------------------------------------------------------------------------- /tweb/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM fundrequestio/alpine-jdk8-slim 2 | 3 | VOLUME /tmp 4 | ADD target/tweb-0.0.1-SNAPSHOT.jar fundrequest.jar 5 | ADD libs/dd-java-agent.jar dd-java-agent.jar 6 | RUN sh -c 'touch /fundrequest.jar' && \ 7 | mkdir config 8 | 9 | ENV JAVA_OPTS="" 10 | 11 | EXPOSE 8080 12 | 13 | ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -javaagent:/dd-java-agent.jar -Djava.security.egd=file:/dev/./urandom -Duser.timezone=UTC -jar /fundrequest.jar" ] 14 | -------------------------------------------------------------------------------- /tweb/libs/dd-java-agent.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/libs/dd-java-agent.jar -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-brands-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-brands-400.eot -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-brands-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-brands-400.woff -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-light-300.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-light-300.eot -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-light-300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-light-300.ttf -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-light-300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-light-300.woff -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-light-300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-light-300.woff2 -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-regular-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-regular-400.eot -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-regular-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-regular-400.woff -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-solid-900.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-solid-900.eot -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-solid-900.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-solid-900.woff -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/fontawesome/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/roboto/Roboto-Bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/roboto/Roboto-Bold.eot -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/roboto/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/roboto/Roboto-Bold.ttf -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/roboto/Roboto-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/roboto/Roboto-Bold.woff -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/roboto/Roboto-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/roboto/Roboto-Bold.woff2 -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/roboto/Roboto-Light.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/roboto/Roboto-Light.eot -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/roboto/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/roboto/Roboto-Light.ttf -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/roboto/Roboto-Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/roboto/Roboto-Light.woff -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/roboto/Roboto-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/roboto/Roboto-Light.woff2 -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/roboto/Roboto-Medium.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/roboto/Roboto-Medium.eot -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/roboto/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/roboto/Roboto-Medium.ttf -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/roboto/Roboto-Medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/roboto/Roboto-Medium.woff -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/roboto/Roboto-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/roboto/Roboto-Medium.woff2 -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/roboto/Roboto-Regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/roboto/Roboto-Regular.eot -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/roboto/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/roboto/Roboto-Regular.ttf -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/roboto/Roboto-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/roboto/Roboto-Regular.woff -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/roboto/Roboto-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/roboto/Roboto-Regular.woff2 -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/roboto/Roboto-Thin.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/roboto/Roboto-Thin.eot -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/roboto/Roboto-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/roboto/Roboto-Thin.ttf -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/roboto/Roboto-Thin.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/roboto/Roboto-Thin.woff -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/roboto/Roboto-Thin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/roboto/Roboto-Thin.woff2 -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/typekit-jaf-domus/jaf-domus-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/typekit-jaf-domus/jaf-domus-400.ttf -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/typekit-jaf-domus/jaf-domus-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/typekit-jaf-domus/jaf-domus-400.woff -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/typekit-jaf-domus/jaf-domus-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/typekit-jaf-domus/jaf-domus-400.woff2 -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/typekit-jaf-domus/jaf-domus.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/typekit-jaf-domus/jaf-domus.ttf -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/typekit-jaf-domus/jaf-domus.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/typekit-jaf-domus/jaf-domus.woff -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/fonts/typekit-jaf-domus/jaf-domus.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/fonts/typekit-jaf-domus/jaf-domus.woff2 -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/BTC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/BTC.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/Fundrequest-title-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/Fundrequest-title-white.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/Fundrequest-title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/Fundrequest-title.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/advisor-addison-huegel.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/advisor-addison-huegel.jpg -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/advisor-christopher-heymann.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/advisor-christopher-heymann.jpg -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/advisor-kenzi-wang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/advisor-kenzi-wang.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/advisor-lasse-clausen.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/advisor-lasse-clausen.jpg -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/advisor-nico-haelterman.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/advisor-nico-haelterman.jpg -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/advisor-thomas-graham.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/advisor-thomas-graham.jpg -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/advisor-thomas-matthys.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/advisor-thomas-matthys.jpg -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/bg-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/bg-blue.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/bg-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/bg-green.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/blockchainnews.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/blockchainnews.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/btcecho.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/btcecho.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/chainfinance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/chainfinance.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/chipin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/chipin.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/clearify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/clearify.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/clearify_bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/clearify_bottom.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/controls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/controls.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/cryptoninjas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/cryptoninjas.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/dummy-badge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/dummy-badge.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/error-page-img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/error-page-img.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/error.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/fundrequest-title-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/fundrequest-title-sprite.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/headerimg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/headerimg.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/help-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/help-image.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/logo-single.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/logo-single.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/logo-single16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/logo-single16.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/logo-single180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/logo-single180.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/logo-single32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/logo-single32.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/metamask-gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/metamask-gray.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/metamask-submit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/metamask-submit.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/metamask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/metamask.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/og-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/og-image.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/overlays/01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/overlays/01.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/overlays/02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/overlays/02.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/overlays/03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/overlays/03.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/overlays/04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/overlays/04.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/overlays/05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/overlays/05.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/overlays/06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/overlays/06.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/overlays/07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/overlays/07.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/overlays/08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/overlays/08.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/overlays/09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/overlays/09.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/profile-avatar-color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/profile-avatar-color.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/profile-avatar-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/profile-avatar-large.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/profile-avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/profile-avatar.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/providers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/providers.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/qrdummy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/qrdummy.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/rect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/rect.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/rocketchat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/rocketchat.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/scroll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/scroll.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/scrollblue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/scrollblue.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/section-5A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/section-5A.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/section-5B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/section-5B.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/svg/arrow_left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/svg/arrow_right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/tokens/dai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/tokens/dai.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/tokens/dock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/tokens/dock.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/tokens/fnd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/tokens/fnd.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/tokens/ind.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/tokens/ind.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/tokens/man.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/tokens/man.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/tokens/xsc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/tokens/xsc.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/tokens/xuc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/tokens/xuc.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/tokens/zrx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/tokens/zrx.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/trustwallet-next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/trustwallet-next.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/trustwallet-qr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/trustwallet-qr.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/trustwallet-send-big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/trustwallet-send-big.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/trustwallet-send.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/trustwallet-send.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/trustwallet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/trustwallet.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/img/unicorn-gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/img/unicorn-gray.png -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/js/classes/token-info.ts: -------------------------------------------------------------------------------- 1 | export class TokenInfo { 2 | address: string; 3 | symbol: string; 4 | name: string; 5 | decimals: number; 6 | } -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/js/index.ts: -------------------------------------------------------------------------------- 1 | import 'bootstrap'; 2 | 3 | import './vue/index'; 4 | import './classes/index'; -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/js/vue/EventBus.ts: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | export const EventBus = new Vue(); 3 | -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/js/vue/dtos/FundsDto.ts: -------------------------------------------------------------------------------- 1 | export default class FundsDto { 2 | tokenAddress: string; 3 | tokenSymbol: string; 4 | totalAmount: number = 0; 5 | tokenImage: string; 6 | } -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/js/vue/dtos/ListFilterDto.ts: -------------------------------------------------------------------------------- 1 | export default class ListFilterDto { 2 | value: string; 3 | title: string; 4 | count: number; 5 | description: string; 6 | url: string; 7 | } -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/js/vue/dtos/RequestDto.ts: -------------------------------------------------------------------------------- 1 | import RequestFundsDto from './RequestFundsDto'; 2 | 3 | export default class RequestDto { 4 | id: number; 5 | icon: string; 6 | owner: string; 7 | platform: string; 8 | repo: string; 9 | issueNumber: string; 10 | title: string; 11 | description: string; 12 | status: string; 13 | phase: string; 14 | technologies: string[]; 15 | funds: RequestFundsDto; 16 | starred: boolean; 17 | lastModifiedDate: Date; 18 | } 19 | -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/js/vue/dtos/RequestFundsDto.ts: -------------------------------------------------------------------------------- 1 | import FundsDto from './FundsDto'; 2 | 3 | export default class RequestFundsDto { 4 | fndFunds: FundsDto; 5 | otherFunds: FundsDto; 6 | usdFunds: number; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/js/vue/dtos/RequestListItemPendingFundDto.ts: -------------------------------------------------------------------------------- 1 | import RequestFundsDto from './RequestFundsDto'; 2 | 3 | export class RequestIssueInformationDto { 4 | owner: string; 5 | repo: string; 6 | number: number; 7 | title: string; 8 | platform: string; 9 | platformId: string; 10 | url: string; 11 | } 12 | 13 | export class RequestListItemPendingFundDto { 14 | id: string; 15 | description: string; 16 | transactionId: string; 17 | fromAddress: string; 18 | amount: string; 19 | tokenAddress: string; 20 | issueInformation: RequestIssueInformationDto; 21 | funds: RequestFundsDto; 22 | } -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/js/vue/filters/formatters/ToCrypto.ts: -------------------------------------------------------------------------------- 1 | import Utils from '../../../classes/Utils'; 2 | 3 | export default class ToCrypto { 4 | public static filter(value: string | number, decimals: number = 2) { 5 | return Utils.formatToCrypto(value, decimals); 6 | } 7 | } -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/js/vue/filters/formatters/ToDatetime.ts: -------------------------------------------------------------------------------- 1 | import Utils from '../../../classes/Utils'; 2 | 3 | export default class ToDatetime { 4 | public static filter(value: string) { 5 | return Utils.formatDatetime(value); 6 | } 7 | } -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/js/vue/filters/formatters/ToUsd.ts: -------------------------------------------------------------------------------- 1 | import Utils from '../../../classes/Utils'; 2 | 3 | export default class ToUsd { 4 | public static filter(value: string | number, decimals: number = 2) { 5 | return Utils.formatToUsd(value, decimals); 6 | } 7 | } -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/js/vue/models/PendingFundCommand.ts: -------------------------------------------------------------------------------- 1 | export class PendingFundCommand { 2 | public description: string; 3 | public transactionId: string; 4 | public fromAddress: string; 5 | public amount: string; 6 | public tokenAddress: string; 7 | public platform: string; 8 | public platformId: string; 9 | } -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/js/vue/models/ProjectOverviewDetail.ts: -------------------------------------------------------------------------------- 1 | export default class ProjectOverviewDetail { 2 | name: string; 3 | description: string; 4 | overviewColor: string; 5 | projectLink: string; 6 | logoLocation: string; 7 | activeRequests: number; 8 | } 9 | -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/js/vue/models/RequestListFilter.ts: -------------------------------------------------------------------------------- 1 | export default class RequestListFilter { 2 | search: string; 3 | tech: string[]; 4 | project: string; 5 | phase: string; 6 | 7 | public get isFiltered() { 8 | return (!!this.search && (this.search.length >= 3 || this.idInSearch)) 9 | || (!!this.tech && this.tech.length > 0) 10 | || (!!this.project && this.project.length > 0); 11 | } 12 | 13 | public get idInSearch() { 14 | let id = this.search && this.search.match(/^#?(\d+)$/); 15 | return id && id[1]; 16 | } 17 | } 18 | 19 | -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/js/vue/vue-shims.d.ts: -------------------------------------------------------------------------------- 1 | declare module "*.vue" { 2 | import Vue from "vue"; 3 | export default Vue; 4 | } -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/scss/_core-helpers.scss: -------------------------------------------------------------------------------- 1 | @import "~bootstrap/scss/functions"; 2 | @import "~bootstrap/scss/variables"; 3 | @import "~bootstrap/scss/_mixins"; 4 | 5 | @import "fundrequest/colors"; 6 | 7 | @import "mdb-overrides/core/colors"; 8 | @import "~mdbootstrap/scss/core/variables"; 9 | @import "mdb-overrides/core/mixins"; 10 | 11 | @import "fundrequest/variables"; -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/scss/bootstrap.scss: -------------------------------------------------------------------------------- 1 | @import "fundrequest/colors"; 2 | @import "fundrequest/variables"; 3 | 4 | @import "~bootstrap/scss/bootstrap"; -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/scss/core.scss: -------------------------------------------------------------------------------- 1 | @import "core-helpers"; 2 | 3 | @import "fundrequest/imports"; 4 | -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/scss/fundrequest/_avatars.scss: -------------------------------------------------------------------------------- 1 | .fnd-user-avatar { 2 | display: flex; 3 | flex-shrink: 0; 4 | align-items: center; 5 | justify-content: center; 6 | width: 3em; 7 | height: 3em; 8 | font-size: 1rem; 9 | background-size: cover; 10 | background-position: center center; 11 | background-repeat: no-repeat; 12 | background-color: $white; 13 | overflow: hidden; 14 | border-radius: $btn-border-radius; 15 | border: $border-width solid $border-color; 16 | img { 17 | width: 100%; 18 | } 19 | } -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/scss/fundrequest/_box-shadows.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/scss/fundrequest/_box-shadows.scss -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/scss/fundrequest/_faq.scss: -------------------------------------------------------------------------------- 1 | .faq__title { 2 | font-size: $font-size-sm; 3 | font-weight: $font-weight-bold !important; //important for overriding mdb 4 | color: $gray-500; 5 | margin-bottom: 0; 6 | } 7 | 8 | .faq__answer { 9 | font-weight: $font-weight-normal; 10 | 11 | p:last-child { 12 | margin-bottom: 0; 13 | } 14 | } -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/scss/fundrequest/_main-page-help.scss: -------------------------------------------------------------------------------- 1 | .help-text { 2 | p { 3 | margin-bottom: 2em; 4 | } 5 | 6 | .fa-ul { 7 | margin-left: 1.6em; 8 | } 9 | 10 | &__header { 11 | color: $orange-500; 12 | font-weight: bold; 13 | margin-bottom: 2em; 14 | } 15 | 16 | &__list { 17 | color: $orange-500; 18 | 19 | li { 20 | color: $orange-500; 21 | a { 22 | text-decoration: underline; 23 | } 24 | } 25 | } 26 | } 27 | 28 | .help-image { 29 | width: 87%; 30 | } 31 | 32 | .line-seperator { 33 | width: 58%; 34 | } -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/scss/fundrequest/_social.scss: -------------------------------------------------------------------------------- 1 | .img--linked-in-modal { 2 | height: 100px; 3 | width: auto; 4 | max-width: 200px; 5 | background-color: $gray-200; 6 | } -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/scss/fundrequest/component-overrides/_imports.scss: -------------------------------------------------------------------------------- 1 | @import "v-select"; -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/scss/fundrequest/requests/_general.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FundRequest/platform/d6a88ced160405e08da3d7f9f9efd57e13820be2/tweb/src/main/frontend/src/scss/fundrequest/requests/_general.scss -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/scss/fundrequest/requests/_imports.scss: -------------------------------------------------------------------------------- 1 | @import "general"; 2 | @import "detail"; 3 | @import "list"; -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/scss/fundrequest/swal/_swal.scss: -------------------------------------------------------------------------------- 1 | .modal-content.swal2-popup { 2 | .swal2-title, 3 | .swal2-content { 4 | font-family: $font-family-base; 5 | font-weight: $font-weight-normal; 6 | } 7 | 8 | .swal2-title { 9 | color: $primary-color; 10 | font-size: $font-size-lg; 11 | } 12 | 13 | .swal2-content { 14 | font-size: $font-size-base; 15 | color: $body-color; 16 | } 17 | } -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/scss/fundrequest/website/_alert.scss: -------------------------------------------------------------------------------- 1 | .alert--top { 2 | max-width: 1920px; 3 | } -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/scss/fundrequest/website/_imports.scss: -------------------------------------------------------------------------------- 1 | @import "main"; 2 | 3 | @import "alert"; 4 | @import "layout"; 5 | @import "sections"; 6 | 7 | @import "overrides"; -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/scss/fundrequest/website/_overrides.scss: -------------------------------------------------------------------------------- 1 | .btn.btn-warning { 2 | box-shadow: none; 3 | margin-bottom: 0; 4 | 5 | &:hover { 6 | box-shadow: $z-depth-1-half; 7 | } 8 | } -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/scss/fundrequest/website/_variables.scss: -------------------------------------------------------------------------------- 1 | $page-width: 1920px; -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/scss/social-buttons/_imports.scss: -------------------------------------------------------------------------------- 1 | @import "mixins/icon-border"; 2 | @import "button-icons"; 3 | @import "social-buttons"; 4 | -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/scss/social-buttons/mixins/_icon-border.scss: -------------------------------------------------------------------------------- 1 | @mixin icon-border($color, $outline) { 2 | &.icon-left, 3 | &.icon-right { 4 | i { 5 | border-color: lighten($color, 30%); } 6 | 7 | @if($outline) { 8 | i { 9 | border-color: $color; } 10 | &:hover { 11 | i { 12 | color: #fff; 13 | border-color: lighten($color, 30%); 14 | } 15 | } 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /tweb/src/main/frontend/src/scss/website.scss: -------------------------------------------------------------------------------- 1 | @import "core-helpers"; 2 | @import "fundrequest/website/variables"; 3 | 4 | @import "fundrequest/website/imports"; -------------------------------------------------------------------------------- /tweb/src/main/frontend/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "outDir": "./built/", 4 | "sourceMap": true, 5 | "module": "es2015", 6 | "moduleResolution": "node", 7 | "target": "es5", 8 | "experimentalDecorators": true, 9 | "emitDecoratorMetadata": true, 10 | "removeComments": true, 11 | "noImplicitAny": false, 12 | "lib": [ 13 | "es2015", 14 | "es2016", 15 | "es2017", 16 | "dom", 17 | "es5" 18 | ] 19 | }, 20 | "include": [ 21 | "./src/**/*" 22 | ] 23 | } -------------------------------------------------------------------------------- /tweb/src/main/frontend/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "defaultSeverity": "error", 3 | "extends": [ 4 | "tslint:recommended" 5 | ], 6 | "jsRules": {}, 7 | "rules": { 8 | "quotemark": [ 9 | true, 10 | "single" 11 | ], 12 | "indent": [ 13 | true 14 | ], 15 | "interface-name": [ 16 | false 17 | ], 18 | "arrow-parens": false, 19 | // Pending fix for shorthand property names. 20 | "object-literal-sort-keys": false 21 | }, 22 | "rulesDirectory": [] 23 | } -------------------------------------------------------------------------------- /tweb/src/main/java/io/fundrequest/platform/tweb/profile/mastery/MasteryController.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.tweb.profile.mastery; 2 | 3 | import org.springframework.stereotype.Controller; 4 | import org.springframework.web.bind.annotation.RequestMapping; 5 | import org.springframework.web.servlet.ModelAndView; 6 | 7 | import java.security.Principal; 8 | 9 | @Controller 10 | public class MasteryController { 11 | 12 | @RequestMapping("/profile/mastery") 13 | public ModelAndView rewards(Principal principal) { 14 | ModelAndView mav = new ModelAndView("pages/profile/mastery"); 15 | return mav; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /tweb/src/main/java/io/fundrequest/platform/tweb/request/dto/ClaimView.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.tweb.request.dto; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class ClaimView { 7 | private final boolean claimable; 8 | private final String claimableByPlatformUser; 9 | } 10 | -------------------------------------------------------------------------------- /tweb/src/main/java/io/fundrequest/platform/tweb/request/dto/ERC67FundDto.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.tweb.request.dto; 2 | 3 | import lombok.Builder; 4 | import lombok.Data; 5 | 6 | @Data 7 | @Builder 8 | public class ERC67FundDto { 9 | private String erc67Link; 10 | } 11 | -------------------------------------------------------------------------------- /tweb/src/main/java/io/fundrequest/platform/tweb/request/dto/RequestDetailsViewMapper.java: -------------------------------------------------------------------------------- 1 | package io.fundrequest.platform.tweb.request.dto; 2 | 3 | import io.fundrequest.common.infrastructure.mapping.BaseMapper; 4 | import io.fundrequest.core.request.view.RequestDto; 5 | import org.mapstruct.DecoratedWith; 6 | import org.mapstruct.Mapper; 7 | import org.mapstruct.ReportingPolicy; 8 | 9 | @Mapper(componentModel = "spring", 10 | unmappedTargetPolicy = ReportingPolicy.IGNORE) 11 | @DecoratedWith(RequestDetailsViewMapperDecorator.class) 12 | public interface RequestDetailsViewMapper extends BaseMapper { 13 | } 14 | -------------------------------------------------------------------------------- /tweb/src/main/resources/application-credentials.properties.template: -------------------------------------------------------------------------------- 1 | feign.client.github.username= 2 | 3 | #create a developer access token on github: https://github.com/settings/tokens 4 | feign.client.github.password= 5 | 6 | local.ethereum.kovan.address= -------------------------------------------------------------------------------- /tweb/src/main/resources/templates/fragments/widgets.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |
5 |
6 | 7 |
8 |
9 |

Title

10 |
# Issues
11 |
12 |
13 |
14 | 15 | -------------------------------------------------------------------------------- /tweb/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | logging.level.root=error 2 | spring.main.banner-mode=off -------------------------------------------------------------------------------- /tweb/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /update-datadog.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd libs/ 4 | wget -O dd-java-agent.jar 'https://search.maven.org/remote_content?g=com.datadoghq&a=dd-java-agent&v=LATEST' 5 | --------------------------------------------------------------------------------