├── docs ├── dummie.txt ├── style.css ├── feed.xml ├── img │ ├── header-bg.jpg │ ├── map-image.png │ ├── timeline │ │ ├── 1.jpg │ │ ├── 2.jpg │ │ ├── 3.jpg │ │ └── 4.jpg │ ├── logos │ │ ├── aetuts.jpg │ │ ├── envato.jpg │ │ ├── wordpress.jpg │ │ ├── designmodo.jpg │ │ ├── microlancer.jpg │ │ ├── themeforest.jpg │ │ └── creative-market.jpg │ ├── header-bg.old.jpg │ ├── team │ │ └── danielgomes.jpg │ └── screenshots │ │ ├── activityfeed.png │ │ └── activityfeed_thumbnail.png ├── _layouts │ ├── style.css │ └── default.html ├── .jekyll-cache │ └── Jekyll │ │ └── Cache │ │ └── Jekyll--Converters--Markdown │ │ └── e3 │ │ └── b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 ├── css │ └── font-awesome │ │ └── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ └── fontawesome-webfont.woff2 ├── _data │ └── template.yml ├── _posts │ └── 2014-07-18-project-1.markdown ├── index.html ├── .gitattributes ├── .gitignore ├── README.md └── js │ └── cbpAnimatedHeader.min.js ├── IndieVisible.Web ├── wwwroot │ ├── css │ │ ├── study.css │ │ ├── articles.min.css │ │ ├── articles.css │ │ └── typography.css │ ├── default.vtt │ ├── thirdparty │ │ └── ckeditor5-build-classic │ │ │ ├── .gitignore │ │ │ ├── tests │ │ │ └── manual │ │ │ │ ├── sample.jpg │ │ │ │ ├── ckeditor.md │ │ │ │ ├── ckeditor-cjs-version.md │ │ │ │ ├── ckeditor.js │ │ │ │ └── ckeditor-cjs-version.js │ │ │ ├── CONTRIBUTING.md │ │ │ ├── .editorconfig │ │ │ ├── .gitattributes │ │ │ ├── .eslintrc.js │ │ │ └── .github │ │ │ └── PULL_REQUEST_TEMPLATE.md │ ├── robots.txt │ ├── icon1024.png │ ├── images │ │ ├── logo30h.png │ │ ├── logo50.png │ │ ├── icon1024.png │ │ ├── icon1024w.jpg │ │ ├── icon1024w.png │ │ ├── logo100w.png │ │ ├── logo360w.png │ │ ├── og │ │ │ ├── oglove.png │ │ │ ├── ogwork.png │ │ │ ├── logo512.png │ │ │ ├── ogbadges.png │ │ │ ├── ogranking.png │ │ │ ├── img_facebook2.png │ │ │ ├── oglocalization.png │ │ │ └── img_facebook600x315.png │ │ ├── user-info.jpg │ │ ├── badges │ │ │ ├── admin.png │ │ │ ├── 041-map.png │ │ │ ├── curator.png │ │ │ ├── helper.png │ │ │ ├── jamfan.png │ │ │ ├── betatester.png │ │ │ ├── lovedone.png │ │ │ ├── talkative.png │ │ │ └── conversationstarter.png │ │ ├── featured │ │ │ ├── fez.jpg │ │ │ ├── default.jpg │ │ │ ├── indiedev.jpg │ │ │ ├── indies.jpg │ │ │ ├── joypad.jpg │ │ │ └── bioshock-collection.jpg │ │ ├── games │ │ │ ├── game1.jpg │ │ │ ├── game2.jpg │ │ │ ├── game3.jpg │ │ │ ├── video1.webm │ │ │ └── gameplaceholder.jpg │ │ ├── logo30h.old.png │ │ ├── logominimal.png │ │ ├── stores │ │ │ ├── steam.png │ │ │ ├── itchio.png │ │ │ ├── gamejolt.png │ │ │ ├── indiexpo.png │ │ │ ├── xboxlive.png │ │ │ ├── appleappstore.png │ │ │ ├── googleplaystore.png │ │ │ └── playstationstore.png │ │ ├── icons │ │ │ ├── favicon.ico │ │ │ ├── apple-icon.png │ │ │ ├── favicon-16x16.png │ │ │ ├── favicon-32x32.png │ │ │ ├── favicon-96x96.png │ │ │ ├── ms-icon-70x70.png │ │ │ ├── apple-icon-57x57.png │ │ │ ├── apple-icon-60x60.png │ │ │ ├── apple-icon-72x72.png │ │ │ ├── apple-icon-76x76.png │ │ │ ├── apple-touch-icon.png │ │ │ ├── ms-icon-144x144.png │ │ │ ├── ms-icon-150x150.png │ │ │ ├── ms-icon-310x310.png │ │ │ ├── mstile-150x150.png │ │ │ ├── android-icon-36x36.png │ │ │ ├── android-icon-48x48.png │ │ │ ├── android-icon-72x72.png │ │ │ ├── android-icon-96x96.png │ │ │ ├── apple-icon-114x114.png │ │ │ ├── apple-icon-120x120.png │ │ │ ├── apple-icon-144x144.png │ │ │ ├── apple-icon-152x152.png │ │ │ ├── apple-icon-180x180.png │ │ │ ├── android-icon-144x144.png │ │ │ ├── android-icon-192x192.png │ │ │ ├── android-chrome-192x192.png │ │ │ ├── android-chrome-512x512.png │ │ │ └── apple-icon-precomposed.png │ │ ├── login-register.jpg │ │ ├── external │ │ │ ├── itchio64.png │ │ │ ├── gamejolt64.png │ │ │ ├── indiedb64.png │ │ │ ├── gamedevnet64.png │ │ │ └── unityconnect64.png │ │ ├── logominimal.old.png │ │ ├── partners │ │ │ ├── mpgames.png │ │ │ ├── codersrank.png │ │ │ ├── codersrankbanner.png │ │ │ ├── mongodbforstartups.png │ │ │ └── mongodbstartupaccelerator.png │ │ ├── wallpapers │ │ │ ├── gamer.jpg │ │ │ ├── halo.jpg │ │ │ ├── children.jpg │ │ │ ├── brown-abstract.jpg │ │ │ └── wallpaperstarsvertical.jpg │ │ ├── controls │ │ │ ├── poll-voted.png │ │ │ ├── poll-radio-on.png │ │ │ └── poll-radio-off.png │ │ ├── help │ │ │ └── controlsidebar.jpg │ │ ├── otherprofiles │ │ │ ├── itchio32.png │ │ │ ├── gamejolt20.png │ │ │ ├── gamejolt32.png │ │ │ ├── indiedb32.png │ │ │ ├── gamedevnet32.png │ │ │ ├── gamejolt256.png │ │ │ └── unityconnect32.png │ │ ├── profileimages │ │ │ ├── developer.png │ │ │ ├── programad.jpg │ │ │ ├── developer-old.png │ │ │ ├── fakedeveloper1.jpg │ │ │ ├── fakedeveloper2.jpg │ │ │ └── fakedeveloper3.jpg │ │ └── placeholders │ │ │ ├── featuredimage.gif │ │ │ ├── featuredimage.jpg │ │ │ ├── gamecoverimage.jpg │ │ │ ├── gameplaceholder.jpg │ │ │ ├── gameplaceholder.png │ │ │ ├── courseplaceholder.png │ │ │ ├── gamecoverimage.old.jpg │ │ │ ├── gameplaceholder.old.png │ │ │ ├── profilecoverimage.jpg │ │ │ └── gameplaceholder.old (2).png │ ├── browserconfig.xml │ ├── js │ │ ├── vanilla.extensions.js │ │ ├── search │ │ │ └── search.min.js │ │ ├── content │ │ │ └── contentdetails.js │ │ ├── userpreferences │ │ │ └── userpreferences.js │ │ ├── common-edit.js │ │ └── jquery.extensions.js │ └── .well-known │ │ └── assetlinks.json ├── appsettings.Development.json ├── Views │ ├── Shared │ │ ├── _ControlSidebarPartial.cshtml │ │ ├── _ListNoItems.cshtml │ │ ├── _TagManagerBody.cshtml │ │ ├── _FacebookSdk.cshtml │ │ ├── _TagList.cshtml │ │ ├── _HomeSquare.cshtml │ │ ├── _AuthorDetails.cshtml │ │ └── _TagManagerHead.cshtml │ ├── _ViewStart.cshtml │ ├── Team │ │ ├── _ViewImports.cshtml │ │ └── _List.cshtml │ ├── Brainstorm │ │ └── _ViewImports.cshtml │ ├── Account │ │ ├── SignedOut.cshtml │ │ ├── AccessDenied.cshtml │ │ └── Lockout.cshtml │ ├── Test │ │ └── DiscordWidget.cshtml │ ├── Help │ │ ├── Start.cshtml │ │ └── Advertising.cshtml │ └── Game │ │ └── _GameStoreBadges.cshtml ├── Areas │ ├── Learn │ │ ├── Views │ │ │ ├── _ViewStart.cshtml │ │ │ ├── Study │ │ │ │ └── _ListItemUserProfile.cshtml │ │ │ └── _ViewImports.cshtml │ │ └── Controllers │ │ │ └── Base │ │ │ └── LearnBaseController.cs │ ├── Staff │ │ ├── Views │ │ │ ├── _ViewStart.cshtml │ │ │ ├── FeaturedContent │ │ │ │ └── Index.cshtml │ │ │ ├── MongoMigration │ │ │ │ ├── Index.cshtml │ │ │ │ └── MigrationResult.cshtml │ │ │ └── _ViewImports.cshtml │ │ └── Controllers │ │ │ ├── Base │ │ │ └── StaffBaseController.cs │ │ │ └── SuperPowersController.cs │ ├── Tools │ │ ├── Views │ │ │ ├── _ViewStart.cshtml │ │ │ ├── Localization │ │ │ │ └── _ListByUser.cshtml │ │ │ └── _ViewImports.cshtml │ │ └── Controllers │ │ │ └── Base │ │ │ └── ToolsBaseController.cs │ ├── Work │ │ ├── Views │ │ │ ├── _ViewStart.cshtml │ │ │ ├── JobPosition │ │ │ │ ├── _MyPositionsStats.cshtml │ │ │ │ ├── _MyApplications.cshtml │ │ │ │ └── _List.cshtml │ │ │ └── _ViewImports.cshtml │ │ └── Controllers │ │ │ └── Base │ │ │ └── WorkBaseController.cs │ ├── Member │ │ ├── Views │ │ │ ├── _ViewStart.cshtml │ │ │ ├── Preferences │ │ │ │ ├── _ViewImports.cshtml │ │ │ │ └── _StatusMessage.cshtml │ │ │ └── _ViewImports.cshtml │ │ └── Controllers │ │ │ └── Base │ │ │ └── MemberBaseController.cs │ └── Gamification │ │ └── Views │ │ ├── _ViewStart.cshtml │ │ └── _ViewImports.cshtml ├── Resources │ └── SharedResources.cs ├── ConfigOptions.cs ├── web.env ├── .config │ └── dotnet-tools.json ├── IndieVisible.Web.ruleset ├── Models │ ├── ErrorViewModel.cs │ ├── PostFromHomeViewModel.cs │ ├── ShareModel.cs │ └── MvcRegisterViewModel.cs ├── Services │ └── ICookieMgrService.cs ├── Enums │ └── SessionValues.cs ├── Controllers │ └── TestController.cs ├── Middlewares │ └── CanonicalUrl │ │ └── CanonicalMiddlewareExtensions.cs ├── Helpers │ └── ConstantHelper.cs ├── ScaffoldingReadMe.txt ├── Filters │ └── AjaxOnlyAttribute.cs ├── Extensions │ └── ViewModelExtensions │ │ └── UserGeneratedBaseViewModelExtensions.cs ├── Program.cs └── RewriterRules │ └── NonWwwRule.cs ├── .gitattributes ├── README.md ├── IndieVisible.Domain.Core ├── Enums │ ├── FollowType.cs │ ├── ProfileType.cs │ ├── LikeTargetType.cs │ ├── VoteValue.cs │ ├── ImageRenderType.cs │ ├── Roles.cs │ ├── TranslationFilter.cs │ ├── MediaType.cs │ ├── DomainActionPerformed.cs │ ├── ExportContributorsType.cs │ ├── BrainstormSessionType.cs │ ├── ExternalLinkType.cs │ ├── UserContentType.cs │ ├── ImageType.cs │ ├── JobProfile.cs │ ├── StudyProfile.cs │ ├── JobPositionOrigin.cs │ ├── UserConnectionType.cs │ ├── JobPositionDuration.cs │ ├── UserConnectionDirection.cs │ ├── InvitationStatus.cs │ ├── NotificationType.cs │ ├── CodeLanguage.cs │ ├── JobPositonType.cs │ ├── BrainstormIdeaStatus.cs │ ├── GameEngine.cs │ ├── PaymentFrequency.cs │ ├── GameStatus.cs │ ├── PlatformAction.cs │ ├── JobPositionStatus.cs │ ├── JobExperienceLevel.cs │ └── SupportedLanguage.cs ├── Attributes │ ├── AscendingIndexAttribute.cs │ ├── FullTextIndexAttribute.cs │ ├── DescendingIndexAttribute.cs │ ├── ExternalLinkInfoAttribute.cs │ └── UiInfoAttribute.cs ├── IndieVisible.Domain.Core.ruleset ├── Interfaces │ ├── IEntity.cs │ └── ISpecification.cs ├── Extensions │ ├── ICollectionExtensions.cs │ └── DoubleExtensions.cs └── IndieVisible.Domain.Core.csproj ├── IndieVisible.Application ├── ViewModels │ ├── User │ │ ├── UserFollowViewModel.cs │ │ ├── ProfileSearchViewModel.cs │ │ └── UserConnectionViewModel.cs │ ├── RequestBaseViewModel.cs │ ├── Game │ │ └── GameFollowViewModel.cs │ ├── Localization │ │ ├── ContributorViewModel.cs │ │ └── LocalizationEntryViewModel.cs │ ├── Study │ │ ├── StudyActivityViewModel.cs │ │ ├── CourseMemberViewModel.cs │ │ ├── StudyPlanViewModel.cs │ │ └── StudyGroupViewModel.cs │ ├── Home │ │ ├── CarouselViewModel.cs │ │ └── CountersViewModel.cs │ ├── Gamification │ │ ├── GamificationLevelViewModel.cs │ │ └── UserBadgeViewModel.cs │ ├── UserLike │ │ └── UserLikeViewModel.cs │ ├── CommentViewModel.cs │ ├── Brainstorm │ │ ├── BrainstormVoteViewModel.cs │ │ ├── BrainstormCommentViewModel.cs │ │ └── BrainstormSessionViewModel.cs │ ├── Search │ │ └── UserContentSearchViewModel.cs │ ├── Notification │ │ └── NotificationItemViewModel.cs │ ├── AuthorBaseViewModel.cs │ ├── Content │ │ └── ActivityFeedRequestViewModel.cs │ ├── Poll │ │ ├── PollOptionViewModel.cs │ │ ├── PollViewModel.cs │ │ └── PollResultsViewModel.cs │ ├── ExternalLinkBaseViewModel.cs │ └── Jobs │ │ └── JobApplicantViewModel.cs ├── IndieVisible.Application.ruleset ├── Interfaces │ ├── IPermissionControl.cs │ ├── IPollAppService.cs │ ├── IUserPreferencesAppService.cs │ ├── IImageStorageService.cs │ ├── IComment.cs │ ├── IFollowAppService.cs │ ├── ICrudAppService.cs │ ├── IGamificationAppService.cs │ ├── INotificationAppService.cs │ └── ICommentableItem.cs └── AutoMapper │ └── AutoMapperConfig.cs ├── IndieVisible.Domain ├── Interfaces │ ├── Repository │ │ ├── IUserBadgeRepository.cs │ │ ├── IGamificationRepository.cs │ │ ├── INotificationRepository.cs │ │ ├── IStudyGroupRepository.cs │ │ ├── IUserConnectionRepository.cs │ │ ├── IFeaturedContentRepository.cs │ │ ├── IUserPreferencesRepository.cs │ │ ├── IGamificationLevelRepository.cs │ │ ├── IJobPositionRepository.cs │ │ ├── IGamificationActionRepository.cs │ │ ├── IGameRepository.cs │ │ └── ITeamRepository.cs │ ├── Services │ │ ├── INotificationDomainService.cs │ │ ├── IUserPreferencesDomainService.cs │ │ ├── IFeaturedContentDomainService.cs │ │ ├── IProfileBaseAppService.cs │ │ ├── IPollDomainService.cs │ │ └── IGameDomainService.cs │ ├── IUnitOfWork.cs │ ├── Models │ │ ├── IEntityBase.cs │ │ ├── IUserGeneratedContent.cs │ │ ├── IUserProfileBasic.cs │ │ └── IGameCardBasic.cs │ ├── Infrastructure │ │ └── ICacheService.cs │ └── Base │ │ └── IDomainService.cs ├── Models │ ├── GameLike.cs │ ├── GameFollow.cs │ ├── UserFollow.cs │ ├── UserContentLike.cs │ ├── PollVote.cs │ ├── Study │ │ ├── StudyActivity.cs │ │ ├── CourseMember.cs │ │ ├── StudyPlan.cs │ │ └── StudyGroup.cs │ ├── LocalizationTerm.cs │ ├── GamificationLevel.cs │ ├── JobApplicant.cs │ ├── GamificationAction.cs │ ├── Gamification.cs │ ├── Notification.cs │ ├── UserConnection.cs │ ├── PollOption.cs │ ├── BrainstormVote.cs │ ├── LocalizationEntry.cs │ ├── UserPreferences.cs │ ├── UserContentComment.cs │ ├── UserBadge.cs │ ├── BrainstormSession.cs │ ├── BrainstormComment.cs │ ├── Team.cs │ ├── TeamMember.cs │ ├── FeaturedContent.cs │ └── BrainstormIdea.cs ├── IndieVisible.Domain.ruleset ├── ValueObjects │ ├── InMemoryFileVo.cs │ ├── RankingVo.cs │ ├── JobPositionBenefitVo.cs │ ├── GameCharacteristicVo.cs │ ├── UserProfileEssentialVo.cs │ ├── ExternalLinkVo.cs │ ├── UserConnectionVo.cs │ ├── JobPositionApplicationVo.cs │ ├── StudyCourseListItemVo.cs │ ├── UserContentSearchVo.cs │ ├── StudyCoursesOfUserVo.cs │ ├── PermissionsVo.cs │ ├── LocalizationStatsVo.cs │ └── SelectListItemVo.cs ├── Services │ ├── NotificationDomainService.cs │ └── UserPreferencesDomainService.cs ├── Specifications │ ├── IdNotEmptySpecification.cs │ └── UserIsOwnerSpecification.cs └── IndieVisible.Domain.csproj ├── IndieVisible.Infra.CrossCutting.Abstractions ├── IndieVisible.Infra.CrossCutting.Abstractions.csproj └── INotificationSender.cs ├── .bettercodehub.yml ├── IndieVisible.Infra.Data └── IndieVisible.Infra.Data.ruleset ├── IndieVisible.Infra.CrossCutting.Identity ├── Model │ ├── TwoFactorRecoveryCode.cs │ ├── Role.cs │ └── IdentityUserToken.cs ├── Models │ ├── ManageViewModels │ │ ├── ShowRecoveryCodesViewModel.cs │ │ ├── RemoveLoginViewModel.cs │ │ ├── TwoFactorAuthenticationViewModel.cs │ │ ├── ExternalLoginsViewModel.cs │ │ ├── IndexViewModel.cs │ │ └── EnableAuthenticatorViewModel.cs │ └── AccountViewModels │ │ ├── ForgotPasswordViewModel.cs │ │ ├── LoginWithRecoveryCodeViewModel.cs │ │ ├── ExternalLoginViewModel.cs │ │ ├── LoginViewModel.cs │ │ └── LoginWithTwoFactorViewModel.cs ├── IndieVisible.Infra.CrossCutting.Identity.ruleset └── MongoIdentityOptions.cs ├── IndieVisible.Infra.CrossCutting.IoC └── IndieVisible.Infra.CrossCutting.IoC.ruleset ├── IndieVisible.Infra.Data.MongoDb ├── IMongoService.cs ├── MongoObject.cs ├── Maps │ ├── GamificationMap.cs │ ├── FeaturedContentMap.cs │ ├── UserPreferencesMap.cs │ ├── GamificationActionMap.cs │ ├── GamificationLevelMap.cs │ ├── GameMap.cs │ ├── UserProfileMap.cs │ ├── UserContentMap.cs │ ├── JobsMap.cs │ ├── TeamMap.cs │ ├── BrainstormMap.cs │ ├── PollMap.cs │ └── TranslationMap.cs ├── Interfaces │ └── IMongoContext.cs └── Repository │ ├── UserBadgeRepository.cs │ ├── StudyGroupRepository.cs │ ├── GamificationRepository.cs │ ├── NotificationRepository.cs │ ├── UserConnectionRepository.cs │ ├── FeaturedContentRepository.cs │ └── UserPreferencesRepository.cs ├── IndieVisible.Infra.CrossCutting.Notifications └── Slack │ └── SlackMessage.cs ├── docker-compose.db.yml ├── vendor.yml ├── coverlet.runsettings ├── .dockerignore ├── IndieVisible.Infra.Data.Cache └── IndieVisible.Infra.Data.Cache.csproj ├── docker-compose.yml ├── docker-compose.override.yml ├── .github ├── ISSUE_TEMPLATE │ └── feature_request.md ├── FUNDING.yml └── workflows │ └── dotnet-core.yml └── docker-compose.dcproj /docs/dummie.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/css/study.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/style.css: -------------------------------------------------------------------------------- 1 | --- 2 | layout: style 3 | --- -------------------------------------------------------------------------------- /docs/feed.xml: -------------------------------------------------------------------------------- 1 | --- 2 | layout: feed 3 | --- 4 | -------------------------------------------------------------------------------- /IndieVisible.Web/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Views/Shared/_ControlSidebarPartial.cshtml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/css/articles.min.css: -------------------------------------------------------------------------------- 1 | .dummy{color:#f00} -------------------------------------------------------------------------------- /IndieVisible.Web/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/css/articles.css: -------------------------------------------------------------------------------- 1 | .dummy { 2 | color: red; 3 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Learn/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Staff/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Tools/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Work/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Member/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/default.vtt: -------------------------------------------------------------------------------- 1 | WEBVTT 2 | 3 | 1 4 | 00:00:01.000 --> 00:00:03.000 5 | -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Gamification/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Views/Team/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using IndieVisible.Application.ViewModels.Team -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | docs/* linguist-documentation 2 | IndieVisible.Web/wwwroot/lib/* linguist-vendored 3 | -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Member/Views/Preferences/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using IndieVisible.Web.Views.Manage -------------------------------------------------------------------------------- /IndieVisible.Web/Views/Brainstorm/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using IndieVisible.Application.ViewModels.Brainstorm -------------------------------------------------------------------------------- /docs/img/header-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/docs/img/header-bg.jpg -------------------------------------------------------------------------------- /docs/img/map-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/docs/img/map-image.png -------------------------------------------------------------------------------- /docs/img/timeline/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/docs/img/timeline/1.jpg -------------------------------------------------------------------------------- /docs/img/timeline/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/docs/img/timeline/2.jpg -------------------------------------------------------------------------------- /docs/img/timeline/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/docs/img/timeline/3.jpg -------------------------------------------------------------------------------- /docs/img/timeline/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/docs/img/timeline/4.jpg -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/thirdparty/ckeditor5-build-classic/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | package-lock.json 3 | -------------------------------------------------------------------------------- /docs/img/logos/aetuts.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/docs/img/logos/aetuts.jpg -------------------------------------------------------------------------------- /docs/img/logos/envato.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/docs/img/logos/envato.jpg -------------------------------------------------------------------------------- /docs/_layouts/style.css: -------------------------------------------------------------------------------- 1 | {% include css/bootstrap.min.css %} 2 | {% include css/agency.css %} 3 | {{ content }} 4 | -------------------------------------------------------------------------------- /docs/img/header-bg.old.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/docs/img/header-bg.old.jpg -------------------------------------------------------------------------------- /docs/img/logos/wordpress.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/docs/img/logos/wordpress.jpg -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/robots.txt: -------------------------------------------------------------------------------- 1 | User-Agent: * 2 | Disallow: 3 | 4 | Sitemap: https://www.indievisible.net/sitemap.xml -------------------------------------------------------------------------------- /docs/img/logos/designmodo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/docs/img/logos/designmodo.jpg -------------------------------------------------------------------------------- /docs/img/logos/microlancer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/docs/img/logos/microlancer.jpg -------------------------------------------------------------------------------- /docs/img/logos/themeforest.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/docs/img/logos/themeforest.jpg -------------------------------------------------------------------------------- /docs/img/team/danielgomes.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/docs/img/team/danielgomes.jpg -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | THIS PROJECT WAS MIGRATED TO [https://github.com/anteatergames/ludustack](https://github.com/anteatergames/ludustack) 2 | -------------------------------------------------------------------------------- /docs/img/logos/creative-market.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/docs/img/logos/creative-market.jpg -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/icon1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/icon1024.png -------------------------------------------------------------------------------- /docs/img/screenshots/activityfeed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/docs/img/screenshots/activityfeed.png -------------------------------------------------------------------------------- /IndieVisible.Web/Resources/SharedResources.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Web 2 | { 3 | public class SharedResources 4 | { 5 | } 6 | } -------------------------------------------------------------------------------- /docs/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/e3/b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855: -------------------------------------------------------------------------------- 1 | I" 2 | :ET -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/logo30h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/logo30h.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/logo50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/logo50.png -------------------------------------------------------------------------------- /docs/css/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/docs/css/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icon1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icon1024.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icon1024w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icon1024w.jpg -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icon1024w.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icon1024w.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/logo100w.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/logo100w.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/logo360w.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/logo360w.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/og/oglove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/og/oglove.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/og/ogwork.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/og/ogwork.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/user-info.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/user-info.jpg -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/badges/admin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/badges/admin.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/featured/fez.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/featured/fez.jpg -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/games/game1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/games/game1.jpg -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/games/game2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/games/game2.jpg -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/games/game3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/games/game3.jpg -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/logo30h.old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/logo30h.old.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/logominimal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/logominimal.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/og/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/og/logo512.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/og/ogbadges.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/og/ogbadges.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/og/ogranking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/og/ogranking.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/stores/steam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/stores/steam.png -------------------------------------------------------------------------------- /docs/img/screenshots/activityfeed_thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/docs/img/screenshots/activityfeed_thumbnail.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/badges/041-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/badges/041-map.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/badges/curator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/badges/curator.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/badges/helper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/badges/helper.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/badges/jamfan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/badges/jamfan.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/games/video1.webm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/games/video1.webm -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/favicon.ico -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/login-register.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/login-register.jpg -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/stores/itchio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/stores/itchio.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/badges/betatester.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/badges/betatester.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/badges/lovedone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/badges/lovedone.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/badges/talkative.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/badges/talkative.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/external/itchio64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/external/itchio64.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/featured/default.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/featured/default.jpg -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/featured/indiedev.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/featured/indiedev.jpg -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/featured/indies.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/featured/indies.jpg -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/featured/joypad.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/featured/joypad.jpg -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/apple-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/apple-icon.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/logominimal.old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/logominimal.old.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/og/img_facebook2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/og/img_facebook2.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/og/oglocalization.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/og/oglocalization.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/partners/mpgames.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/partners/mpgames.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/stores/gamejolt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/stores/gamejolt.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/stores/indiexpo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/stores/indiexpo.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/stores/xboxlive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/stores/xboxlive.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/wallpapers/gamer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/wallpapers/gamer.jpg -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/wallpapers/halo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/wallpapers/halo.jpg -------------------------------------------------------------------------------- /docs/css/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/docs/css/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /docs/css/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/docs/css/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /docs/css/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/docs/css/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /docs/css/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/docs/css/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/controls/poll-voted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/controls/poll-voted.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/external/gamejolt64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/external/gamejolt64.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/external/indiedb64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/external/indiedb64.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/help/controlsidebar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/help/controlsidebar.jpg -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/favicon-16x16.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/favicon-32x32.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/favicon-96x96.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/ms-icon-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/ms-icon-70x70.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/partners/codersrank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/partners/codersrank.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/wallpapers/children.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/wallpapers/children.jpg -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/controls/poll-radio-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/controls/poll-radio-on.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/external/gamedevnet64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/external/gamedevnet64.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/games/gameplaceholder.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/games/gameplaceholder.jpg -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/apple-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/apple-icon-57x57.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/apple-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/apple-icon-60x60.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/apple-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/apple-icon-72x72.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/apple-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/apple-icon-76x76.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/apple-touch-icon.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/ms-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/ms-icon-144x144.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/ms-icon-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/ms-icon-150x150.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/ms-icon-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/ms-icon-310x310.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/mstile-150x150.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/og/img_facebook600x315.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/og/img_facebook600x315.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/otherprofiles/itchio32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/otherprofiles/itchio32.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/stores/appleappstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/stores/appleappstore.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/stores/googleplaystore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/stores/googleplaystore.png -------------------------------------------------------------------------------- /IndieVisible.Web/ConfigOptions.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Web 2 | { 3 | public class ConfigOptions 4 | { 5 | public string FacebookAppId { get; set; } 6 | } 7 | } -------------------------------------------------------------------------------- /IndieVisible.Web/web.env: -------------------------------------------------------------------------------- 1 | MongoSettings:Connection=mongodb://root:root@indievisible-db/test?retryWrites=true&w=majority&authSource=admin 2 | MongoSettings:DatabaseName=INDIEVISIBLE_DEV -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/controls/poll-radio-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/controls/poll-radio-off.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/external/unityconnect64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/external/unityconnect64.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/android-icon-36x36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/android-icon-36x36.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/android-icon-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/android-icon-48x48.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/android-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/android-icon-72x72.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/android-icon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/android-icon-96x96.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/apple-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/apple-icon-114x114.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/apple-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/apple-icon-120x120.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/apple-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/apple-icon-144x144.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/apple-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/apple-icon-152x152.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/apple-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/apple-icon-180x180.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/otherprofiles/gamejolt20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/otherprofiles/gamejolt20.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/otherprofiles/gamejolt32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/otherprofiles/gamejolt32.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/otherprofiles/indiedb32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/otherprofiles/indiedb32.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/profileimages/developer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/profileimages/developer.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/profileimages/programad.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/profileimages/programad.jpg -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/stores/playstationstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/stores/playstationstore.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/badges/conversationstarter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/badges/conversationstarter.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/android-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/android-icon-144x144.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/android-icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/android-icon-192x192.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/otherprofiles/gamedevnet32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/otherprofiles/gamedevnet32.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/otherprofiles/gamejolt256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/otherprofiles/gamejolt256.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/partners/codersrankbanner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/partners/codersrankbanner.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/partners/mongodbforstartups.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/partners/mongodbforstartups.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/placeholders/featuredimage.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/placeholders/featuredimage.gif -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/placeholders/featuredimage.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/placeholders/featuredimage.jpg -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/placeholders/gamecoverimage.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/placeholders/gamecoverimage.jpg -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/profileimages/developer-old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/profileimages/developer-old.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/wallpapers/brown-abstract.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/wallpapers/brown-abstract.jpg -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/FollowType.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Domain.Core.Enums 2 | { 3 | public enum FollowType 4 | { 5 | Content = 1, 6 | Game = 2 7 | } 8 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Views/Account/SignedOut.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Signed out"; 3 | } 4 | 5 |

@ViewData["Title"]

6 |

7 | You have successfully signed out. 8 |

-------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/featured/bioshock-collection.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/featured/bioshock-collection.jpg -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/android-chrome-192x192.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/android-chrome-512x512.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/icons/apple-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/icons/apple-icon-precomposed.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/otherprofiles/unityconnect32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/otherprofiles/unityconnect32.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/placeholders/gameplaceholder.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/placeholders/gameplaceholder.jpg -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/placeholders/gameplaceholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/placeholders/gameplaceholder.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/profileimages/fakedeveloper1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/profileimages/fakedeveloper1.jpg -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/profileimages/fakedeveloper2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/profileimages/fakedeveloper2.jpg -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/profileimages/fakedeveloper3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/profileimages/fakedeveloper3.jpg -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/ProfileType.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Domain.Core.Enums 2 | { 3 | public enum ProfileType 4 | { 5 | Personal = 1, 6 | Studio = 2 7 | } 8 | } -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/placeholders/courseplaceholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/placeholders/courseplaceholder.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/placeholders/gamecoverimage.old.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/placeholders/gamecoverimage.old.jpg -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/placeholders/gameplaceholder.old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/placeholders/gameplaceholder.old.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/placeholders/profilecoverimage.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/placeholders/profilecoverimage.jpg -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/User/UserFollowViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Application.ViewModels.User 2 | { 3 | public class UserFollowViewModel : BaseViewModel 4 | { 5 | } 6 | } -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/partners/mongodbstartupaccelerator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/partners/mongodbstartupaccelerator.png -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/wallpapers/wallpaperstarsvertical.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/wallpapers/wallpaperstarsvertical.jpg -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Attributes/AscendingIndexAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace IndieVisible.Domain.Core 4 | { 5 | public class AscendingIndexAttribute : Attribute 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Attributes/FullTextIndexAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace IndieVisible.Domain.Core 4 | { 5 | public class FullTextIndexAttribute : Attribute 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/images/placeholders/gameplaceholder.old (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/images/placeholders/gameplaceholder.old (2).png -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Attributes/DescendingIndexAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace IndieVisible.Domain.Core 4 | { 5 | public class DescendingIndexAttribute : Attribute 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/LikeTargetType.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Domain.Core.Enums 2 | { 3 | public enum LikeTargetType 4 | { 5 | UserContent, 6 | Game, 7 | User 8 | } 9 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/VoteValue.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Domain.Core.Enums 2 | { 3 | public enum VoteValue 4 | { 5 | Neutral = 0, 6 | Positive = 1, 7 | Negative = -1 8 | } 9 | } -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/thirdparty/ckeditor5-build-classic/tests/manual/sample.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anteatergames/indievisible/HEAD/IndieVisible.Web/wwwroot/thirdparty/ckeditor5-build-classic/tests/manual/sample.jpg -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/ImageRenderType.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Domain.Core.Enums 2 | { 3 | public enum ImageRenderType 4 | { 5 | Full = 0, 6 | LowQuality = 1, 7 | Responsive = 2 8 | } 9 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/Roles.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Domain.Core.Enums 2 | { 3 | public enum Roles 4 | { 5 | Administrator, 6 | Curator, 7 | Editor, 8 | Member 9 | } 10 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/TranslationFilter.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Domain.Core.Enums 2 | { 3 | public enum TranslationFilter 4 | { 5 | All = 0, 6 | Untranslated = 1, 7 | Translated = 2 8 | } 9 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/MediaType.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Domain.Core.Enums 2 | { 3 | public enum MediaType 4 | { 5 | None = 0, 6 | Image = 1, 7 | Video = 2, 8 | Youtube = 3 9 | } 10 | } -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/RequestBaseViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace IndieVisible.Application.ViewModels 4 | { 5 | public class RequestBaseViewModel 6 | { 7 | public Guid CurrentUserId { get; set; } 8 | } 9 | } -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/User/ProfileSearchViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Application.ViewModels.User 2 | { 3 | public class ProfileSearchViewModel : BaseViewModel 4 | { 5 | public string Name { get; set; } 6 | } 7 | } -------------------------------------------------------------------------------- /IndieVisible.Web/.config/dotnet-tools.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "isRoot": true, 4 | "tools": { 5 | "dotnet-ef": { 6 | "version": "3.1.3", 7 | "commands": [ 8 | "dotnet-ef" 9 | ] 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/DomainActionPerformed.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Domain.Core.Enums 2 | { 3 | public enum DomainActionPerformed 4 | { 5 | None, 6 | Create, 7 | Update, 8 | Delete 9 | } 10 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Interfaces/Repository/IUserBadgeRepository.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | 3 | namespace IndieVisible.Domain.Interfaces.Repository 4 | { 5 | public interface IUserBadgeRepository : IRepository 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.CrossCutting.Abstractions/IndieVisible.Infra.CrossCutting.Abstractions.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/ExportContributorsType.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Domain.Core.Enums 2 | { 3 | public enum ExportContributorsType 4 | { 5 | NameProfile, 6 | Name, 7 | Email, 8 | NameEmail 9 | } 10 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/GameLike.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Models; 2 | using System; 3 | 4 | namespace IndieVisible.Domain.Models 5 | { 6 | public class GameLike : Entity 7 | { 8 | public Guid GameId { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /IndieVisible.Web/IndieVisible.Web.ruleset: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /IndieVisible.Web/Views/Account/AccessDenied.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Access denied"; 3 | } 4 | 5 |
6 |

@ViewData["Title"]

7 |

You do not have access to this resource.

8 |
-------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/Game/GameFollowViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace IndieVisible.Application.ViewModels.Game 4 | { 5 | public class GameFollowViewModel : BaseViewModel 6 | { 7 | public Guid GameId { get; set; } 8 | } 9 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/BrainstormSessionType.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Domain.Core.Enums 2 | { 3 | public enum BrainstormSessionType 4 | { 5 | Main = 1, 6 | Generic = 2, 7 | Game = 3, 8 | Content = 4 9 | } 10 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/IndieVisible.Domain.ruleset: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /IndieVisible.Domain/Interfaces/Repository/IGamificationRepository.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | 3 | namespace IndieVisible.Domain.Interfaces.Repository 4 | { 5 | public interface IGamificationRepository : IRepository 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Interfaces/Repository/INotificationRepository.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | 3 | namespace IndieVisible.Domain.Interfaces.Repository 4 | { 5 | public interface INotificationRepository : IRepository 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Interfaces/Repository/IStudyGroupRepository.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | 3 | namespace IndieVisible.Domain.Interfaces.Repository 4 | { 5 | public interface IStudyGroupRepository : IRepository 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/GameFollow.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Models; 2 | using System; 3 | 4 | namespace IndieVisible.Domain.Models 5 | { 6 | public class GameFollow : Entity 7 | { 8 | public Guid GameId { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Models/ErrorViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Web.Models 2 | { 3 | public class ErrorViewModel 4 | { 5 | public string RequestId { get; set; } 6 | 7 | public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); 8 | } 9 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Models/PostFromHomeViewModel.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | 3 | namespace IndieVisible.Web.Models 4 | { 5 | public class PostFromHomeViewModel 6 | { 7 | public SupportedLanguage DefaultLanguage { get; set; } 8 | } 9 | } -------------------------------------------------------------------------------- /.bettercodehub.yml: -------------------------------------------------------------------------------- 1 | languages: 2 | - csharp 3 | - javascript 4 | 5 | 6 | exclude: 7 | # Lib directory 8 | - .*/wwwroot/lib/.* 9 | - .*/wwwroot/thirdparty/.* 10 | - .*/docs/.* 11 | - /docs/.* 12 | 13 | # Minified JavaScript and CSS 14 | - (\.|-)min\.(js|css)$ 15 | -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/Localization/ContributorViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Application.ViewModels.Localization 2 | { 3 | public class ContributorViewModel : AuthorBaseViewModel 4 | { 5 | public int EntryCount { get; set; } 6 | } 7 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Interfaces/Repository/IUserConnectionRepository.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | 3 | namespace IndieVisible.Domain.Interfaces.Repository 4 | { 5 | public interface IUserConnectionRepository : IRepository 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Interfaces/Services/INotificationDomainService.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | 3 | namespace IndieVisible.Domain.Interfaces.Services 4 | { 5 | public interface INotificationDomainService : IDomainService 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/UserFollow.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Models; 2 | using System; 3 | 4 | namespace IndieVisible.Domain.Models 5 | { 6 | public class UserFollow : Entity 7 | { 8 | public Guid? FollowUserId { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/ValueObjects/InMemoryFileVo.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Domain.ValueObjects 2 | { 3 | public class InMemoryFileVo 4 | { 5 | public string FileName { get; set; } 6 | 7 | public byte[] Contents { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /IndieVisible.Web/Views/Account/Lockout.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Locked out"; 3 | } 4 | 5 |
6 |

@ViewData["Title"]

7 |

This account has been locked out, please try again later.

8 |
-------------------------------------------------------------------------------- /IndieVisible.Application/IndieVisible.Application.ruleset: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/ExternalLinkType.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Domain.Core.Enums 2 | { 3 | public enum ExternalLinkType 4 | { 5 | GameDev = 1, 6 | ProfileAndGame = 2, 7 | ProfileOnly = 3, 8 | General = 4 9 | } 10 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/IndieVisible.Domain.Core.ruleset: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Interfaces/IEntity.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace IndieVisible.Domain.Core.Interfaces 4 | { 5 | public interface IEntity 6 | { 7 | Guid UserId { get; set; } 8 | 9 | DateTime CreateDate { get; set; } 10 | } 11 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Interfaces/Repository/IFeaturedContentRepository.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | 3 | namespace IndieVisible.Domain.Interfaces.Repository 4 | { 5 | public interface IFeaturedContentRepository : IRepository 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Interfaces/Repository/IUserPreferencesRepository.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | 3 | namespace IndieVisible.Domain.Interfaces.Repository 4 | { 5 | public interface IUserPreferencesRepository : IRepository 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/UserContentLike.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Models; 2 | using System; 3 | 4 | namespace IndieVisible.Domain.Models 5 | { 6 | public class UserContentLike : Entity 7 | { 8 | public Guid ContentId { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.Data/IndieVisible.Infra.Data.ruleset: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /IndieVisible.Web/Services/ICookieMgrService.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Web.Services 2 | { 3 | public interface ICookieMgrService 4 | { 5 | string Get(string key); 6 | 7 | void Set(string key, string value, int? expireTime, bool isEssential); 8 | } 9 | } -------------------------------------------------------------------------------- /IndieVisible.Application/Interfaces/IPermissionControl.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace IndieVisible.Application.Interfaces 4 | { 5 | public interface IPermissionControl 6 | { 7 | void SetPermissions(Guid currentUserId, TViewModel vm); 8 | } 9 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Interfaces/Services/IUserPreferencesDomainService.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | 3 | namespace IndieVisible.Domain.Interfaces.Services 4 | { 5 | public interface IUserPreferencesDomainService : IDomainService 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | #603cba 7 | 8 | 9 | -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/UserContentType.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Domain.Core.Enums 2 | { 3 | public enum UserContentType 4 | { 5 | Post = 1, 6 | Idea = 2, 7 | TeamCreation = 3, 8 | JobPosition = 4, 9 | Translation = 5 10 | } 11 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.CrossCutting.Identity/Model/TwoFactorRecoveryCode.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Infra.CrossCutting.Identity.Model 2 | { 3 | public class TwoFactorRecoveryCode 4 | { 5 | public string Code { get; set; } 6 | 7 | public bool Redeemed { get; set; } 8 | } 9 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.CrossCutting.Identity/Models/ManageViewModels/ShowRecoveryCodesViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Infra.CrossCutting.Identity.Models.ManageViewModels 2 | { 3 | public class ShowRecoveryCodesViewModel 4 | { 5 | public string[] RecoveryCodes { get; set; } 6 | } 7 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.CrossCutting.IoC/IndieVisible.Infra.CrossCutting.IoC.ruleset: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /IndieVisible.Infra.Data.MongoDb/IMongoService.cs: -------------------------------------------------------------------------------- 1 | using MongoDB.Driver; 2 | using System; 3 | 4 | namespace IndieVisible.Infra.Data.MongoDb 5 | { 6 | public interface IMongoService 7 | { 8 | IMongoCollection GetCollection(Action> action); 9 | } 10 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Learn/Views/Study/_ListItemUserProfile.cshtml: -------------------------------------------------------------------------------- 1 | @model ProfileViewModel 2 | @{ 3 | Layout = null; 4 | var isAjax = ViewContext.HttpContext.Request.IsAjaxRequest(); 5 | var canInteract = User.Identity.IsAuthenticated; 6 | } 7 | 8 | -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/thirdparty/ckeditor5-build-classic/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | Contributing 2 | ======================================== 3 | 4 | See the [official contributors' guide to CKEditor 5](https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html) to learn more. 5 | -------------------------------------------------------------------------------- /IndieVisible.Infra.CrossCutting.Identity/IndieVisible.Infra.CrossCutting.Identity.ruleset: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /IndieVisible.Domain/Interfaces/IUnitOfWork.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Threading.Tasks; 3 | 4 | namespace IndieVisible.Domain.Interfaces 5 | { 6 | public interface IUnitOfWork : IDisposable 7 | { 8 | bool HasPendingCommands { get; } 9 | 10 | Task Commit(); 11 | } 12 | } -------------------------------------------------------------------------------- /IndieVisible.Application/Interfaces/IPollAppService.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.ValueObjects; 2 | using System; 3 | 4 | namespace IndieVisible.Application.Interfaces 5 | { 6 | public interface IPollAppService 7 | { 8 | OperationResultVo PollVote(Guid currentUserId, Guid pollOptionId); 9 | } 10 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/PollVote.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Models; 2 | using System; 3 | 4 | namespace IndieVisible.Domain.Models 5 | { 6 | public class PollVote : Entity 7 | { 8 | public Guid PollId { get; set; } 9 | 10 | public Guid PollOptionId { get; set; } 11 | } 12 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/ValueObjects/RankingVo.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | 3 | namespace IndieVisible.Domain.ValueObjects 4 | { 5 | public class RankingVo 6 | { 7 | public Gamification Gamification { get; set; } 8 | 9 | public GamificationLevel Level { get; set; } 10 | } 11 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Interfaces/Models/IEntityBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace IndieVisible.Domain.Interfaces.Models 4 | { 5 | public interface IEntityBase 6 | { 7 | Guid Id { get; set; } 8 | 9 | Guid UserId { get; set; } 10 | 11 | DateTime CreateDate { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Work/Controllers/Base/WorkBaseController.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Web.Controllers.Base; 2 | using Microsoft.AspNetCore.Mvc; 3 | 4 | namespace IndieVisible.Web.Areas.Work.Controllers.Base 5 | { 6 | [Area("work")] 7 | public class WorkBaseController : SecureBaseController 8 | { 9 | } 10 | } -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/js/vanilla.extensions.js: -------------------------------------------------------------------------------- 1 | function camelize(str) { 2 | return str.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g, function (match, index) { 3 | //if (+match === 0) return ""; // or if (/\s+/.test(match)) for white spaces 4 | return index === 0 ? match.toLowerCase() : match.toUpperCase(); 5 | }); 6 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/ImageType.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Domain.Core.Enums 2 | { 3 | public enum ImageType 4 | { 5 | ProfileImage, 6 | ProfileCover, 7 | GameThumbnail, 8 | GameCover, 9 | ContentImage, 10 | FeaturedImage, 11 | CourseThumbnail 12 | } 13 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/Study/StudyActivity.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Models; 2 | using System; 3 | 4 | namespace IndieVisible.Domain.Models 5 | { 6 | public class StudyActivity : Entity 7 | { 8 | public Guid ActivityId { get; set; } 9 | 10 | public int Order { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IndieVisible.Domain/ValueObjects/JobPositionBenefitVo.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | 3 | namespace IndieVisible.Domain.ValueObjects 4 | { 5 | public class JobPositionBenefitVo 6 | { 7 | public JobPositionBenefit Benefit { get; set; } 8 | 9 | public bool Available { get; set; } 10 | } 11 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.CrossCutting.Identity/Models/ManageViewModels/RemoveLoginViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Infra.CrossCutting.Identity.Models.ManageViewModels 2 | { 3 | public class RemoveLoginViewModel 4 | { 5 | public string LoginProvider { get; set; } 6 | public string ProviderKey { get; set; } 7 | } 8 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Learn/Controllers/Base/LearnBaseController.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Web.Controllers.Base; 2 | using Microsoft.AspNetCore.Mvc; 3 | 4 | namespace IndieVisible.Web.Areas.Learn.Controllers.Base 5 | { 6 | [Area("learn")] 7 | public class LearnBaseController : SecureBaseController 8 | { 9 | } 10 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Staff/Controllers/Base/StaffBaseController.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Web.Controllers.Base; 2 | using Microsoft.AspNetCore.Mvc; 3 | 4 | namespace IndieVisible.Web.Areas.Staff.Controllers.Base 5 | { 6 | [Area("staff")] 7 | public class StaffBaseController : SecureBaseController 8 | { 9 | } 10 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Tools/Controllers/Base/ToolsBaseController.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Web.Controllers.Base; 2 | using Microsoft.AspNetCore.Mvc; 3 | 4 | namespace IndieVisible.Web.Areas.Tools.Controllers.Base 5 | { 6 | [Area("tools")] 7 | public class ToolsBaseController : SecureBaseController 8 | { 9 | } 10 | } -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/thirdparty/ckeditor5-build-classic/tests/manual/ckeditor.md: -------------------------------------------------------------------------------- 1 | # CKEditor 5 classic build – standard version 2 | 3 | Just play with it. 4 | 5 | **Note:** Remember to rebuild the bundles (`npm run build`). You can also run Webpack in the watch mode: 6 | 7 | ``` 8 | ./node_modules/.bin/webpack -w 9 | ``` 10 | -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/Study/StudyActivityViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace IndieVisible.Application.ViewModels.Study 4 | { 5 | public class StudyActivityViewModel : BaseViewModel 6 | { 7 | public Guid ActivityId { get; set; } 8 | 9 | public int Order { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /IndieVisible.Infra.Data.MongoDb/MongoObject.cs: -------------------------------------------------------------------------------- 1 | using MongoDB.Bson; 2 | using MongoDB.Bson.Serialization.Attributes; 3 | 4 | namespace IndieVisible.Infra.Data.MongoDb 5 | { 6 | public abstract class MongoObject 7 | { 8 | [BsonRepresentation(BsonType.ObjectId)] 9 | public string Id { get; set; } 10 | } 11 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Member/Controllers/Base/MemberBaseController.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Web.Controllers.Base; 2 | using Microsoft.AspNetCore.Mvc; 3 | 4 | namespace IndieVisible.Web.Areas.Member.Controllers.Base 5 | { 6 | [Area("member")] 7 | public class MemberBaseController : SecureBaseController 8 | { 9 | } 10 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/JobProfile.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace IndieVisible.Domain.Core.Enums 4 | { 5 | public enum JobProfile 6 | { 7 | [Display(Name = "Company")] 8 | Company = 1, 9 | 10 | [Display(Name = "Applicant")] 11 | Applicant = 2 12 | } 13 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/StudyProfile.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Attributes; 2 | 3 | namespace IndieVisible.Domain.Core.Enums 4 | { 5 | public enum StudyProfile 6 | { 7 | [UiInfo(Display = "Mentor")] 8 | Mentor = 1, 9 | 10 | [UiInfo(Display = "Student")] 11 | Student = 2 12 | } 13 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/ValueObjects/GameCharacteristicVo.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | 3 | namespace IndieVisible.Domain.ValueObjects 4 | { 5 | public class GameCharacteristicVo 6 | { 7 | public GameCharacteristcs Characteristic { get; set; } 8 | 9 | public bool Available { get; set; } 10 | } 11 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Enums/SessionValues.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Web.Enums 2 | { 3 | public enum SessionValues 4 | { 5 | Username = 1, 6 | UserProfileImageUrl = 2, 7 | FullName = 3, 8 | PostLanguage = 4, 9 | JobProfile = 5, 10 | Email = 6, 11 | StudyProfile = 7 12 | } 13 | } -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/thirdparty/ckeditor5-build-classic/.editorconfig: -------------------------------------------------------------------------------- 1 | # Configurations to normalize the IDE behavior. 2 | # http://editorconfig.org/ 3 | 4 | root = true 5 | 6 | [*] 7 | indent_style = tab 8 | tab_width = 4 9 | charset = utf-8 10 | end_of_line = lf 11 | trim_trailing_whitespace = true 12 | insert_final_newline = true 13 | -------------------------------------------------------------------------------- /IndieVisible.Infra.CrossCutting.Notifications/Slack/SlackMessage.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Infra.CrossCutting.Notifications.Slack 2 | { 3 | internal class SlackMessage 4 | { 5 | public SlackMessage(string text) 6 | { 7 | Text = text; 8 | } 9 | 10 | public string Text { get; set; } 11 | } 12 | } -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/thirdparty/ckeditor5-build-classic/.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | 3 | *.htaccess eol=lf 4 | *.cgi eol=lf 5 | *.sh eol=lf 6 | 7 | *.css text 8 | *.htm text 9 | *.html text 10 | *.js text 11 | *.json text 12 | *.php text 13 | *.txt text 14 | *.md text 15 | 16 | *.png -text 17 | *.gif -text 18 | *.jpg -text 19 | -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/Home/CarouselViewModel.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Application.ViewModels.FeaturedContent; 2 | using System.Collections.Generic; 3 | 4 | namespace IndieVisible.Application.ViewModels.Home 5 | { 6 | public class CarouselViewModel 7 | { 8 | public List Items { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/JobPositionOrigin.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace IndieVisible.Domain.Core.Enums 4 | { 5 | public enum JobPositionOrigin 6 | { 7 | [Display(Name = "Internal")] 8 | Internal = 1, 9 | 10 | [Display(Name = "External")] 11 | External = 2 12 | } 13 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/LocalizationTerm.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Models; 2 | 3 | namespace IndieVisible.Domain.Models 4 | { 5 | public class LocalizationTerm : Entity 6 | { 7 | public string Key { get; set; } 8 | 9 | public string Value { get; set; } 10 | 11 | public string Obs { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/GamificationLevel.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Models; 2 | 3 | namespace IndieVisible.Domain.Models 4 | { 5 | public class GamificationLevel : Entity 6 | { 7 | public int Number { get; set; } 8 | 9 | public string Name { get; set; } 10 | 11 | public int XpToAchieve { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/JobApplicant.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Models; 2 | 3 | namespace IndieVisible.Domain.Models 4 | { 5 | public class JobApplicant : Entity 6 | { 7 | public string CoverLetter { get; set; } 8 | 9 | public decimal Score { get; set; } 10 | 11 | public string Email { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/Gamification/GamificationLevelViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Application.ViewModels.Gamification 2 | { 3 | public class GamificationLevelViewModel 4 | { 5 | public int Number { get; set; } 6 | 7 | public string Name { get; set; } 8 | 9 | public int XpToAchieve { get; set; } 10 | } 11 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Interfaces/Services/IFeaturedContentDomainService.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | using System.Linq; 3 | 4 | namespace IndieVisible.Domain.Interfaces.Services 5 | { 6 | public interface IFeaturedContentDomainService : IDomainService 7 | { 8 | IQueryable GetFeaturedNow(); 9 | } 10 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/GamificationAction.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | using IndieVisible.Domain.Core.Models; 3 | 4 | namespace IndieVisible.Domain.Models 5 | { 6 | public class GamificationAction : Entity 7 | { 8 | public PlatformAction Action { get; set; } 9 | 10 | public int ScoreValue { get; set; } 11 | } 12 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Staff/Views/FeaturedContent/Index.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "User Content Management"; 3 | } 4 |
5 |

@ViewData["Title"]

6 |
7 | 8 |
9 |
10 | 11 | @section Scripts{ 12 | 13 | } -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/thirdparty/ckeditor5-build-classic/tests/manual/ckeditor-cjs-version.md: -------------------------------------------------------------------------------- 1 | # CKEditor 5 classic build – standard version (CommonJS `require()`) 2 | 3 | Just play with it. 4 | 5 | **Note:** Remember to rebuild the bundles (`npm run build`). You can also run Webpack in the watch mode: 6 | 7 | ``` 8 | ./node_modules/.bin/webpack -w 9 | ``` 10 | -------------------------------------------------------------------------------- /IndieVisible.Web/Controllers/TestController.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Web.Controllers.Base; 2 | using Microsoft.AspNetCore.Mvc; 3 | 4 | namespace IndieVisible.Web.Controllers 5 | { 6 | public class TestController : SecureBaseController 7 | { 8 | public IActionResult DiscordWidget() 9 | { 10 | return View(); 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /docs/_data/template.yml: -------------------------------------------------------------------------------- 1 | # Color settings (hex-codes without the leading hash-tag) 2 | color: 3 | primary: fed136 4 | secondary: fec503 5 | secondary-dark: 333 6 | muted: 777 7 | 8 | # Font Families 9 | font: 10 | primary: 'Montserrat, "Helvetica Neue",Helvetica,Arial,sans-serif' 11 | secondary: '"Droid Serif", "Helvetica Neue", Helvetica,Arial,sans-serif' 12 | -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/UserLike/UserLikeViewModel.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | using System; 3 | 4 | namespace IndieVisible.Application.ViewModels.UserLike 5 | { 6 | public class UserLikeViewModel : BaseViewModel 7 | { 8 | public Guid LikedId { get; set; } 9 | 10 | public LikeTargetType TargetType { get; set; } 11 | } 12 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Extensions/ICollectionExtensions.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace IndieVisible.Domain.Core.Extensions 4 | { 5 | public static class ICollectionExtensions 6 | { 7 | public static ICollection Safe(this ICollection list) 8 | { 9 | return list ?? new List(); 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/ValueObjects/UserProfileEssentialVo.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Models; 2 | 3 | namespace IndieVisible.Domain.ValueObjects 4 | { 5 | public class UserProfileEssentialVo : Entity 6 | { 7 | public string Name { get; set; } 8 | public string Location { get; set; } 9 | public bool HasCoverImage { get; set; } 10 | } 11 | } -------------------------------------------------------------------------------- /docker-compose.db.yml: -------------------------------------------------------------------------------- 1 | version: '3.4' 2 | 3 | services: 4 | indievisible-db: 5 | container_name: indievisible-db 6 | command: mongod --auth 7 | image: mongo:latest 8 | ports: 9 | - '27017:27017' 10 | environment: 11 | - MONGO_INITDB_ROOT_USERNAME=root 12 | - MONGO_INITDB_ROOT_PASSWORD=root 13 | - MONGO_INITDB_DATABASE=admin -------------------------------------------------------------------------------- /IndieVisible.Application/Interfaces/IUserPreferencesAppService.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Application.ViewModels.UserPreferences; 2 | using System; 3 | 4 | namespace IndieVisible.Application.Interfaces 5 | { 6 | public interface IUserPreferencesAppService : ICrudAppService 7 | { 8 | UserPreferencesViewModel GetByUserId(Guid userId); 9 | } 10 | } -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/CommentViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace IndieVisible.Application.ViewModels 4 | { 5 | public class CommentViewModel : UserGeneratedBaseViewModel 6 | { 7 | public Guid ParentCommentId { get; set; } 8 | 9 | public Guid UserContentId { get; set; } 10 | 11 | public string Text { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Interfaces/ISpecification.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Domain.Core.Interfaces 2 | { 3 | public interface ISpecification 4 | { 5 | string ErrorMessage { get; } 6 | 7 | bool IsSatisfied { get; } 8 | } 9 | 10 | public interface ISpecification : ISpecification 11 | { 12 | bool IsSatisfiedBy(T item); 13 | } 14 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Interfaces/Repository/IGamificationLevelRepository.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | using System.Threading.Tasks; 3 | 4 | namespace IndieVisible.Domain.Interfaces.Repository 5 | { 6 | public interface IGamificationLevelRepository : IRepository 7 | { 8 | Task GetByNumber(int levelNumber); 9 | } 10 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/ValueObjects/ExternalLinkVo.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | 3 | namespace IndieVisible.Domain.ValueObjects 4 | { 5 | public class ExternalLinkVo 6 | { 7 | public ExternalLinkType Type { get; set; } 8 | 9 | public ExternalLinkProvider Provider { get; set; } 10 | 11 | public string Value { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/js/search/search.min.js: -------------------------------------------------------------------------------- 1 | var SEARCH=function(){"use strict";function t(){i();r();u()}function i(){n.term=$("#q");n.divSearchPosts=$("#divSearchPosts")}function r(){}function u(){MAINMODULE.Ajax.LoadHtml("/search/posts?q="+encodeURIComponent(n.term.val()),n.divSearchPosts).then(()=>{MAINMODULE.Common.BindPopOvers()})}var n={};return{Init:t}}();$(function(){SEARCH.Init()}); -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/thirdparty/ckeditor5-build-classic/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. 3 | * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license 4 | */ 5 | 6 | /* eslint-env node */ 7 | 8 | 'use strict'; 9 | 10 | module.exports = { 11 | extends: 'ckeditor5' 12 | }; 13 | -------------------------------------------------------------------------------- /vendor.yml: -------------------------------------------------------------------------------- 1 | # Vendored files and directories are excluded from language 2 | # statistics. 3 | # 4 | # Lines in this file are Regexps that are matched against the file 5 | # pathname. 6 | # 7 | # Please add additional test coverage to 8 | # `test/test_blob.rb#test_vendored` if you make any changes. 9 | 10 | ## Vendor Conventions ## 11 | 12 | # Libs 13 | - IndieVisible.Web/wwwroot/lib/ 14 | -------------------------------------------------------------------------------- /IndieVisible.Application/Interfaces/IImageStorageService.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | 3 | namespace IndieVisible.Application.Interfaces 4 | { 5 | public interface IImageStorageService 6 | { 7 | Task StoreImageAsync(string container, string fileName, byte[] image); 8 | 9 | Task DeleteImageAsync(string container, string fileName); 10 | } 11 | } -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/Brainstorm/BrainstormVoteViewModel.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | using System; 3 | 4 | namespace IndieVisible.Application.ViewModels.Brainstorm 5 | { 6 | public class BrainstormVoteViewModel : BaseViewModel 7 | { 8 | public Guid VotingItemId { get; set; } 9 | 10 | public VoteValue VoteValue { get; set; } 11 | } 12 | } -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/Home/CountersViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Application.ViewModels.Home 2 | { 3 | public class CountersViewModel 4 | { 5 | public int GamesCount { get; set; } 6 | 7 | public int UsersCount { get; set; } 8 | 9 | public int ArticlesCount { get; set; } 10 | 11 | public int TeamCount { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.CrossCutting.Identity/Models/AccountViewModels/ForgotPasswordViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace IndieVisible.Infra.CrossCutting.Identity.Models.AccountViewModels 4 | { 5 | public class ForgotPasswordViewModel 6 | { 7 | [Required] 8 | [EmailAddress] 9 | public string Email { get; set; } 10 | } 11 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Interfaces/Repository/IJobPositionRepository.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | using System; 3 | using System.Threading.Tasks; 4 | 5 | namespace IndieVisible.Domain.Interfaces.Repository 6 | { 7 | public interface IJobPositionRepository : IRepository 8 | { 9 | Task AddApplicant(Guid jobPositionId, JobApplicant applicant); 10 | } 11 | } -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/.well-known/assetlinks.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "relation": [ "delegate_permission/common.handle_all_urls" ], 4 | "target": { 5 | "namespace": "android_app", 6 | "package_name": "xyz.appmaker.xtfyrq", 7 | "sha256_cert_fingerprints": [ "55:C8:A7:31:69:2D:DA:30:CF:F1:5F:A8:C1:E4:42:17:F2:6A:80:0D:F3:4D:40:99:BA:37:5A:3F:8A:E0:5E:70" ] 8 | } 9 | } 10 | ] -------------------------------------------------------------------------------- /IndieVisible.Domain/ValueObjects/UserConnectionVo.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | 3 | namespace IndieVisible.Domain.ValueObjects 4 | { 5 | public class UserConnectionVo 6 | { 7 | public bool Accepted { get; set; } 8 | 9 | public UserConnectionDirection? Direction { get; set; } 10 | 11 | public UserConnectionType ConnectionType { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /IndieVisible.Web/Views/Shared/_ListNoItems.cshtml: -------------------------------------------------------------------------------- 1 | @model ListNoItemsViewModel 2 | 3 |
4 | 5 |
6 |

@SharedLocalizer[Model.Text]

7 |
8 |
-------------------------------------------------------------------------------- /IndieVisible.Web/Views/Test/DiscordWidget.cshtml: -------------------------------------------------------------------------------- 1 | 2 | @{ 3 | ViewData["Title"] = "DiscordWidget"; 4 | Layout = null; 5 | } 6 | 7 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /IndieVisible.Domain/Interfaces/Models/IUserGeneratedContent.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | 3 | namespace IndieVisible.Domain.Interfaces.Models 4 | { 5 | public interface IUserGeneratedContent : IEntityBase 6 | { 7 | string AuthorPicture { get; set; } 8 | 9 | string AuthorName { get; set; } 10 | 11 | UserContentType UserContentType { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/thirdparty/ckeditor5-build-classic/.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ### Suggested merge commit message ([convention](https://github.com/ckeditor/ckeditor5-design/wiki/Git-commit-message-convention)) 2 | 3 | Type: Message. Closes #000. 4 | 5 | --- 6 | 7 | ### Additional information 8 | 9 | *For example – encountered issues, assumptions you had to make, other affected tickets, etc.* 10 | -------------------------------------------------------------------------------- /coverlet.runsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | cobertura,opencover 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/Gamification.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Models; 2 | 3 | namespace IndieVisible.Domain.Models 4 | { 5 | public class Gamification : Entity 6 | { 7 | public int CurrentLevelNumber { get; set; } 8 | 9 | public int XpTotal { get; set; } 10 | 11 | public int XpCurrentLevel { get; set; } 12 | 13 | public int XpToNextLevel { get; set; } 14 | } 15 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.CrossCutting.Identity/Models/ManageViewModels/TwoFactorAuthenticationViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Infra.CrossCutting.Identity.Models.ManageViewModels 2 | { 3 | public class TwoFactorAuthenticationViewModel 4 | { 5 | public bool HasAuthenticator { get; set; } 6 | 7 | public int RecoveryCodesLeft { get; set; } 8 | 9 | public bool Is2faEnabled { get; set; } 10 | } 11 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Interfaces/Models/IUserProfileBasic.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Domain.Interfaces.Models 2 | { 3 | public interface IUserProfileBasic : IEntityBase 4 | { 5 | string ProfileImageUrl { get; set; } 6 | 7 | string CoverImageUrl { get; set; } 8 | 9 | string Name { get; set; } 10 | 11 | string Country { get; set; } 12 | 13 | string Location { get; set; } 14 | } 15 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Interfaces/Services/IProfileBaseAppService.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | using IndieVisible.Domain.ValueObjects; 3 | using System; 4 | 5 | namespace IndieVisible.Domain.Interfaces.Services 6 | { 7 | public interface IProfileBaseAppService 8 | { 9 | void SetProfileCache(Guid userId, UserProfile value); 10 | 11 | OperationResultVo GetCountries(Guid currentUserId); 12 | } 13 | } -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | **/.classpath 2 | **/.dockerignore 3 | **/.env 4 | **/.git 5 | **/.gitignore 6 | **/.project 7 | **/.settings 8 | **/.toolstarget 9 | **/.vs 10 | **/.vscode 11 | **/*.*proj.user 12 | **/*.dbmdl 13 | **/*.jfm 14 | **/azds.yaml 15 | **/bin 16 | **/charts 17 | **/docker-compose* 18 | **/Dockerfile* 19 | **/node_modules 20 | **/npm-debug.log 21 | **/obj 22 | **/secrets.dev.yaml 23 | **/values.dev.yaml 24 | LICENSE 25 | README.md -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/UserConnectionType.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Attributes; 2 | 3 | namespace IndieVisible.Domain.Core.Enums 4 | { 5 | public enum UserConnectionType 6 | { 7 | [UiInfo(Display = "WorkedTogether")] 8 | WorkedTogether = 1, 9 | 10 | [UiInfo(Display = "Mentor")] 11 | Mentor = 2, 12 | 13 | [UiInfo(Display = "Pupil")] 14 | Pupil = 3 15 | } 16 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Interfaces/Repository/IGamificationActionRepository.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | using IndieVisible.Domain.Models; 3 | using System.Threading.Tasks; 4 | 5 | namespace IndieVisible.Domain.Interfaces.Repository 6 | { 7 | public interface IGamificationActionRepository : IRepository 8 | { 9 | Task GetByAction(PlatformAction action); 10 | } 11 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/JobPositionDuration.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace IndieVisible.Domain.Core.Enums 4 | { 5 | public enum JobPositionDuration 6 | { 7 | [Display(Name = "Not Informed")] 8 | NotInformed = 0, 9 | 10 | [Display(Name = "Permanent")] 11 | Permanent = 1, 12 | 13 | [Display(Name = "Temporary")] 14 | Temporary = 2 15 | } 16 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/UserConnectionDirection.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Attributes; 2 | 3 | namespace IndieVisible.Domain.Core.Enums 4 | { 5 | public enum UserConnectionDirection 6 | { 7 | [UiInfo(Display = "Both Ways")] 8 | BothWays = 1, 9 | 10 | [UiInfo(Display = "From User")] 11 | FromUser = 2, 12 | 13 | [UiInfo(Display = "To User")] 14 | ToUser = 3 15 | } 16 | } -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/js/content/contentdetails.js: -------------------------------------------------------------------------------- 1 | var CONTENTDETAILS = (function () { 2 | "use strict"; 3 | 4 | function init() { 5 | cacheSelectors(); 6 | 7 | bindAll(); 8 | } 9 | 10 | function cacheSelectors() { 11 | } 12 | 13 | function bindAll() { 14 | } 15 | 16 | return { 17 | Init: init 18 | }; 19 | }()); 20 | 21 | $(function () { 22 | CONTENTDETAILS.Init(); 23 | }); -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/Notification.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | using IndieVisible.Domain.Core.Models; 3 | 4 | namespace IndieVisible.Domain.Models 5 | { 6 | public class Notification : Entity 7 | { 8 | public NotificationType Type { get; set; } 9 | 10 | public bool IsRead { get; set; } 11 | 12 | public string Text { get; set; } 13 | 14 | public string Url { get; set; } 15 | } 16 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Staff/Views/MongoMigration/Index.cshtml: -------------------------------------------------------------------------------- 1 | @model List 2 | @{ 3 | ViewData["Title"] = "Mongo Migration"; 4 | } 5 | 6 |

Index

7 | 8 |
9 | @for (int i = 0; i < Model.Count; i++) 10 | { 11 | var item = Model.ElementAt(i); 12 | @(i + 1) - @item 13 | } 14 |
-------------------------------------------------------------------------------- /docs/_posts/2014-07-18-project-1.markdown: -------------------------------------------------------------------------------- 1 | --- 2 | title: Activity Feed 3 | subtitle: The main screen 4 | layout: default 5 | modal-id: 1 6 | img: activityfeed.png 7 | thumbnail: activityfeed_thumbnail.png 8 | alt: image-alt 9 | description: When you enter the platform this is what you see. This is your home. See what the community is up to lately and interact with other fellow devs by linking, commenting or sharing their posts. 10 | 11 | --- 12 | -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/UserConnection.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | using IndieVisible.Domain.Core.Models; 3 | using System; 4 | 5 | namespace IndieVisible.Domain.Models 6 | { 7 | public class UserConnection : Entity 8 | { 9 | public Guid TargetUserId { get; set; } 10 | 11 | public UserConnectionType ConnectionType { get; set; } 12 | 13 | public DateTime? ApprovalDate { get; set; } 14 | } 15 | } -------------------------------------------------------------------------------- /docs/_layouts/default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {% include head.html %} 5 | 6 | 7 | 8 | 9 | {% include header.html %} 10 | {% include features.html %} 11 | {% include screenshots_grid.html %} 12 | {% include timeline.html %} 13 | {% include team.html %} 14 | {% include footer.html %} 15 | {% include modals.html %} 16 | {% include js.html %} 17 | 18 | 19 | -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/PollOption.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Models; 2 | using System; 3 | 4 | namespace IndieVisible.Domain.Models 5 | { 6 | public class PollOption : Entity 7 | { 8 | public Guid PollId { get; set; } 9 | 10 | public int Index { get; set; } 11 | 12 | public string Text { get; set; } 13 | 14 | public string Image { get; set; } 15 | 16 | public virtual Poll Poll { get; set; } 17 | } 18 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Views/Shared/_TagManagerBody.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 11 | 12 | -------------------------------------------------------------------------------- /IndieVisible.Application/Interfaces/IComment.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace IndieVisible.Application.Interfaces 4 | { 5 | public interface IComment 6 | { 7 | Guid UserId { get; set; } 8 | 9 | DateTime CreateDate { get; set; } 10 | 11 | Guid? ParentCommentId { get; set; } 12 | 13 | string Text { get; set; } 14 | 15 | string AuthorPicture { get; set; } 16 | 17 | string AuthorName { get; set; } 18 | } 19 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Attributes/ExternalLinkInfoAttribute.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | using System; 3 | 4 | namespace IndieVisible.Domain.Core.Attributes 5 | { 6 | [AttributeUsage(AttributeTargets.Field)] 7 | public class ExternalLinkInfoAttribute : UiInfoAttribute 8 | { 9 | public ExternalLinkType Type { get; set; } 10 | public bool IsStore { get; set; } 11 | public string ColorClass { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/ValueObjects/JobPositionApplicationVo.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | using System; 3 | 4 | namespace IndieVisible.Domain.ValueObjects 5 | { 6 | public class JobPositionApplicationVo 7 | { 8 | public Guid JobPositionId { get; set; } 9 | 10 | public DateTime ApplicationDate { get; set; } 11 | 12 | public WorkType WorkType { get; set; } 13 | 14 | public String Location { get; set; } 15 | } 16 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/ValueObjects/StudyCourseListItemVo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace IndieVisible.Domain.ValueObjects 4 | { 5 | public class StudyCourseListItemVo 6 | { 7 | public Guid Id { get; set; } 8 | 9 | public string Name { get; set; } 10 | 11 | public bool OpenForApplication { get; set; } 12 | 13 | public int StudentCount { get; set; } 14 | 15 | public string ThumbnailUrl { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /IndieVisible.Infra.CrossCutting.Abstractions/INotificationSender.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | 3 | namespace IndieVisible.Infra.CrossCutting.Abstractions 4 | { 5 | public interface INotificationSender 6 | { 7 | Task SendEmailAsync(string email, string subject, string message); 8 | 9 | Task SendEmailAsync(string email, string templateId, object templateData); 10 | 11 | Task SendTeamNotificationAsync(string message); 12 | } 13 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.CrossCutting.Identity/Models/AccountViewModels/LoginWithRecoveryCodeViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace IndieVisible.Infra.CrossCutting.Identity.Models.AccountViewModels 4 | { 5 | public class LoginWithRecoveryCodeViewModel 6 | { 7 | [Required] 8 | [DataType(DataType.Text)] 9 | [Display(Name = "Recovery Code")] 10 | public string RecoveryCode { get; set; } 11 | } 12 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.Data.MongoDb/Maps/GamificationMap.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | using MongoDB.Bson.Serialization; 3 | 4 | namespace IndieVisible.Infra.Data.MongoDb.Maps 5 | { 6 | public static class GamificationMap 7 | { 8 | public static void Configure() 9 | { 10 | BsonClassMap.RegisterClassMap(map => 11 | { 12 | map.AutoMap(); 13 | }); 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Member/Views/Preferences/_StatusMessage.cshtml: -------------------------------------------------------------------------------- 1 | @model string 2 | 3 | @if (!String.IsNullOrEmpty(Model)) 4 | { 5 | var statusMessageClass = Model.StartsWith("Error") ? "danger" : "success"; 6 | 10 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Views/Help/Start.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "~/Views/Help/_HelpLayout.cshtml"; 3 | ViewData["Title"] = SharedLocalizer["help"].Value.ToUpper(); 4 | var iconModel = new ListNoItemsViewModel("fas fa-question-circle", "This is the main help page. Select a topic on the right side menu."); 5 | ViewData["HelpActive"] = "start"; 6 | } 7 | 8 |
9 | 10 |
-------------------------------------------------------------------------------- /IndieVisible.Web/Views/Team/_List.cshtml: -------------------------------------------------------------------------------- 1 | @model IEnumerable 2 | @{ 3 | Layout = null; 4 | var noItemsModel = new ListNoItemsViewModel("fas fa-users", "What? We have no Teams here! Hurry up, create one!"); 5 | } 6 | 7 | @if (!Model.Any()) 8 | { 9 | 10 | } 11 | else 12 | { 13 | @foreach (var team in Model) 14 | { 15 | 16 | } 17 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Work/Views/JobPosition/_MyPositionsStats.cshtml: -------------------------------------------------------------------------------- 1 | @model Dictionary 2 | 3 | @{ 4 | Layout = null; 5 | } 6 |
    7 | @foreach (var item in Model) 8 | { 9 |
  • 10 | @SharedLocalizer[item.Key] 11 | @item.Value 12 |
  • 13 | } 14 |
-------------------------------------------------------------------------------- /IndieVisible.Web/Models/ShareModel.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Web.Models 2 | { 3 | public class ShareModel 4 | { 5 | public string Url { get; set; } 6 | 7 | public string Text { get; set; } 8 | 9 | public ShareModel(string url) 10 | { 11 | Url = url; 12 | } 13 | 14 | public ShareModel(string url, string text) : this(url) 15 | { 16 | Text = text; 17 | } 18 | 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/BrainstormVote.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | using IndieVisible.Domain.Core.Models; 3 | using System; 4 | 5 | namespace IndieVisible.Domain.Models 6 | { 7 | public class BrainstormVote : Entity 8 | { 9 | public Guid SessionId { get; set; } 10 | public Guid IdeaId { get; set; } 11 | 12 | public VoteValue VoteValue { get; set; } 13 | 14 | public virtual BrainstormIdea Idea { get; set; } 15 | } 16 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.Data.MongoDb/Maps/FeaturedContentMap.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | using MongoDB.Bson.Serialization; 3 | 4 | namespace IndieVisible.Infra.Data.MongoDb.Maps 5 | { 6 | public static class FeaturedContentMap 7 | { 8 | public static void Configure() 9 | { 10 | BsonClassMap.RegisterClassMap(map => 11 | { 12 | map.AutoMap(); 13 | }); 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.Data.MongoDb/Maps/UserPreferencesMap.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | using MongoDB.Bson.Serialization; 3 | 4 | namespace IndieVisible.Infra.Data.MongoDb.Maps 5 | { 6 | public static class UserPreferencesMap 7 | { 8 | public static void Configure() 9 | { 10 | BsonClassMap.RegisterClassMap(map => 11 | { 12 | map.AutoMap(); 13 | }); 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/js/userpreferences/userpreferences.js: -------------------------------------------------------------------------------- 1 | var USERPREFERENCES = (function () { 2 | "use strict"; 3 | 4 | function init() { 5 | bindAll(); 6 | } 7 | 8 | function bindAll() { 9 | bindSelect2(); 10 | } 11 | 12 | function bindSelect2() { 13 | $('.select2').select2(); 14 | } 15 | 16 | return { 17 | Init: init 18 | }; 19 | }()); 20 | 21 | $(function () { 22 | USERPREFERENCES.Init(); 23 | }); -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Attributes/UiInfoAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace IndieVisible.Domain.Core.Attributes 4 | { 5 | [AttributeUsage(AttributeTargets.Field)] 6 | public class UiInfoAttribute : Attribute 7 | { 8 | public int Order { get; set; } 9 | public string Class { get; set; } 10 | public string Culture { get; set; } 11 | public string Description { get; set; } 12 | public string Display { get; set; } 13 | } 14 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/LocalizationEntry.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | using IndieVisible.Domain.Core.Models; 3 | using System; 4 | 5 | namespace IndieVisible.Domain.Models 6 | { 7 | public class LocalizationEntry : Entity 8 | { 9 | public Guid TermId { get; set; } 10 | 11 | public SupportedLanguage Language { get; set; } 12 | 13 | public string Value { get; set; } 14 | 15 | public bool? Accepted { get; set; } 16 | } 17 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.Data.MongoDb/Interfaces/IMongoContext.cs: -------------------------------------------------------------------------------- 1 | using MongoDB.Driver; 2 | using System; 3 | using System.Threading.Tasks; 4 | 5 | namespace IndieVisible.Infra.Data.MongoDb.Interfaces 6 | { 7 | public interface IMongoContext : IDisposable 8 | { 9 | bool HasPendingCommands { get; } 10 | 11 | void AddCommand(Func func); 12 | 13 | Task SaveChanges(); 14 | 15 | IMongoCollection GetCollection(string name); 16 | } 17 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.Data.MongoDb/Maps/GamificationActionMap.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | using MongoDB.Bson.Serialization; 3 | 4 | namespace IndieVisible.Infra.Data.MongoDb.Maps 5 | { 6 | public static class GamificationActionMap 7 | { 8 | public static void Configure() 9 | { 10 | BsonClassMap.RegisterClassMap(map => 11 | { 12 | map.AutoMap(); 13 | }); 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.Data.MongoDb/Maps/GamificationLevelMap.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | using MongoDB.Bson.Serialization; 3 | 4 | namespace IndieVisible.Infra.Data.MongoDb.Maps 5 | { 6 | public static class GamificationLevelMap 7 | { 8 | public static void Configure() 9 | { 10 | BsonClassMap.RegisterClassMap(map => 11 | { 12 | map.AutoMap(); 13 | }); 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/ValueObjects/UserContentSearchVo.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | using System; 3 | 4 | namespace IndieVisible.Domain.ValueObjects 5 | { 6 | public class UserContentSearchVo 7 | { 8 | public Guid ContentId { get; set; } 9 | public string Title { get; set; } 10 | public string Content { get; set; } 11 | public string FeaturedImage { get; set; } 12 | public SupportedLanguage Language { get; set; } 13 | } 14 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Views/Shared/_FacebookSdk.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 15 | -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/js/common-edit.js: -------------------------------------------------------------------------------- 1 | var COMMONEDIT = (function () { 2 | "use strict"; 3 | 4 | function init() { 5 | } 6 | 7 | 8 | function resetValidator(formObject) { 9 | formObject.removeData("validator").removeData("unobtrusiveValidation"); 10 | 11 | $.validator.unobtrusive.parse(formObject); 12 | } 13 | 14 | return { 15 | Init: init, 16 | ResetValidator: resetValidator 17 | }; 18 | }()); 19 | 20 | COMMONEDIT.Init(); -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Extensions/DoubleExtensions.cs: -------------------------------------------------------------------------------- 1 | using System.Globalization; 2 | 3 | namespace IndieVisible.Domain.Core.Extensions 4 | { 5 | public static class DoubleExtensions 6 | { 7 | public static string ToInvariant(this double number) 8 | { 9 | if (number == 0) 10 | { 11 | return "0"; 12 | } 13 | 14 | return number.ToString("###.#", CultureInfo.InvariantCulture); 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/UserPreferences.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | using IndieVisible.Domain.Core.Models; 3 | 4 | namespace IndieVisible.Domain.Models 5 | { 6 | public class UserPreferences : Entity 7 | { 8 | public SupportedLanguage UiLanguage { get; set; } 9 | 10 | public string ContentLanguages { get; set; } 11 | 12 | public JobProfile JobProfile { get; set; } 13 | 14 | public StudyProfile StudyProfile { get; set; } 15 | } 16 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/InvitationStatus.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace IndieVisible.Domain.Core.Enums 4 | { 5 | public enum InvitationStatus 6 | { 7 | [Display(Name = "Invited")] 8 | Invited = 1, 9 | 10 | [Display(Name = "Accepted")] 11 | Accepted = 2, 12 | 13 | [Display(Name = "Rejected")] 14 | Rejected = 3, 15 | 16 | [Display(Name = "Candidate")] 17 | Candidate = 4 18 | } 19 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/NotificationType.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Domain.Core.Enums 2 | { 3 | public enum NotificationType 4 | { 5 | ContentLike = 1, 6 | GameLike = 2, 7 | ContentComment = 3, 8 | ConnectionRequest = 4, 9 | FollowYou = 5, 10 | FollowYourGame = 6, 11 | AchivementEarned = 7, 12 | LevelUp = 8, 13 | ArticleAboutYourGame = 9, 14 | ContentPosted = 10, 15 | TeamInvitation = 11 16 | } 17 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Interfaces/Models/IGameCardBasic.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Domain.Interfaces.Models 2 | { 3 | public interface IGameCardBasic : IEntityBase 4 | { 5 | string Title { get; set; } 6 | 7 | string DeveloperImageUrl { get; set; } 8 | 9 | string DeveloperName { get; set; } 10 | 11 | string ThumbnailUrl { get; set; } 12 | 13 | string ThumbnailResponsive { get; set; } 14 | 15 | string ThumbnailLquip { get; set; } 16 | } 17 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/Study/CourseMember.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Models; 2 | using System; 3 | 4 | namespace IndieVisible.Domain.Models 5 | { 6 | public class CourseMember : Entity 7 | { 8 | public Guid? PlanId { get; set; } 9 | 10 | public bool Accepted { get; set; } 11 | 12 | public decimal FinalScore { get; set; } 13 | 14 | public bool Passed { get; set; } 15 | 16 | public DateTime? ConclusionDate { get; set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /IndieVisible.Infra.Data.Cache/IndieVisible.Infra.Data.Cache.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/Study/CourseMemberViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace IndieVisible.Application.ViewModels.Study 4 | { 5 | public class CourseMemberViewModel : BaseViewModel 6 | { 7 | public Guid? PlanId { get; set; } 8 | 9 | public bool Accepted { get; set; } 10 | 11 | public decimal FinalScore { get; set; } 12 | 13 | public bool Passed { get; set; } 14 | 15 | public DateTime? ConclusionDate { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/UserContentComment.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Models; 2 | using System; 3 | 4 | namespace IndieVisible.Domain.Models 5 | { 6 | public class UserContentComment : Entity 7 | { 8 | public Guid ParentCommentId { get; set; } 9 | 10 | public Guid UserContentId { get; set; } 11 | 12 | public string AuthorName { get; set; } 13 | 14 | public string AuthorPicture { get; set; } 15 | 16 | public string Text { get; set; } 17 | } 18 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Middlewares/CanonicalUrl/CanonicalMiddlewareExtensions.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Builder; 2 | 3 | namespace IndieVisible.Web.Middlewares.CanonicalUrl 4 | { 5 | public static class CanonicalUrlMiddlewareExtensions 6 | { 7 | public static IApplicationBuilder UseCanonicalUrlMiddleware(this IApplicationBuilder builder, CanonicalUrlMiddlewareOptions options) 8 | { 9 | return builder.UseMiddleware(options); 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/js/jquery.extensions.js: -------------------------------------------------------------------------------- 1 | $.fn.serializeObject = function () { 2 | var o = {}; 3 | var a = this.serializeArray(); 4 | $.each(a, function () { 5 | var name = camelize(this.name); 6 | 7 | if (o[name]) { 8 | if (!o[name].push) { 9 | o[name] = [o[name]]; 10 | } 11 | o[name].push(this.value || ''); 12 | } else { 13 | o[name] = this.value || ''; 14 | } 15 | }); 16 | return o; 17 | }; -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/UserBadge.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | using IndieVisible.Domain.Core.Models; 3 | using System; 4 | using System.Collections.Generic; 5 | 6 | namespace IndieVisible.Domain.Models 7 | { 8 | public class UserBadge : Entity 9 | { 10 | public BadgeType Badge { get; set; } 11 | 12 | public List References { get; set; } 13 | 14 | public UserBadge() 15 | { 16 | References = new List(); 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.Data.MongoDb/Maps/GameMap.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | using MongoDB.Bson.Serialization; 3 | 4 | namespace IndieVisible.Infra.Data.MongoDb.Maps 5 | { 6 | public static class GameMap 7 | { 8 | public static void Configure() 9 | { 10 | BsonClassMap.RegisterClassMap(map => 11 | { 12 | map.AutoMap(); 13 | map.MapMember(x => x.Title).SetIsRequired(true); 14 | }); 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/CodeLanguage.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace IndieVisible.Domain.Core.Enums 4 | { 5 | public enum CodeLanguage 6 | { 7 | [Display(Name = "C#")] 8 | Csharp, 9 | 10 | [Display(Name = "Java")] 11 | Java, 12 | 13 | [Display(Name = "C++")] 14 | Cplusplus, 15 | 16 | [Display(Name = "Javascript")] 17 | Javascript, 18 | 19 | [Display(Name = "GML")] 20 | Gml 21 | } 22 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/ValueObjects/StudyCoursesOfUserVo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace IndieVisible.Domain.ValueObjects.Study 5 | { 6 | public class StudyCoursesOfUserVo 7 | { 8 | public Guid UserId { get; set; } 9 | 10 | public List Courses { get; set; } 11 | } 12 | 13 | public class UserCourseVo 14 | { 15 | public Guid CourseId { get; set; } 16 | 17 | public string CourseName { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/Localization/LocalizationEntryViewModel.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | using System; 3 | 4 | namespace IndieVisible.Application.ViewModels.Localization 5 | { 6 | public class LocalizationEntryViewModel : UserGeneratedBaseViewModel 7 | { 8 | public Guid TermId { get; set; } 9 | 10 | public SupportedLanguage Language { get; set; } 11 | 12 | public string Value { get; set; } 13 | 14 | public bool? Accepted { get; set; } 15 | } 16 | } -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/Search/UserContentSearchViewModel.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | using System; 3 | 4 | namespace IndieVisible.Application.ViewModels.Search 5 | { 6 | public class UserContentSearchViewModel 7 | { 8 | public Guid ContentId { get; set; } 9 | public string Title { get; set; } 10 | public string Content { get; set; } 11 | public string FeaturedImage { get; set; } 12 | public SupportedLanguage Language { get; set; } 13 | } 14 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/ValueObjects/PermissionsVo.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Domain.ValueObjects 2 | { 3 | public class PermissionsVo 4 | { 5 | public bool CanEdit { get; set; } 6 | 7 | public bool CanDelete { get; set; } 8 | 9 | public bool CanPostActivity { get; set; } 10 | 11 | public bool CanFollow { get; set; } 12 | 13 | public bool CanConnect { get; set; } 14 | 15 | public bool IsAdmin { get; set; } 16 | 17 | public bool IsMe { get; set; } 18 | } 19 | } -------------------------------------------------------------------------------- /IndieVisible.Application/AutoMapper/AutoMapperConfig.cs: -------------------------------------------------------------------------------- 1 | using AutoMapper; 2 | 3 | namespace IndieVisible.Application.AutoMapper 4 | { 5 | public static class AutoMapperConfig 6 | { 7 | public static MapperConfiguration RegisterMappings() 8 | { 9 | return new MapperConfiguration(cfg => 10 | { 11 | cfg.AddProfile(); 12 | cfg.AddProfile(); 13 | }); 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/ValueObjects/LocalizationStatsVo.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | using System; 3 | using System.Collections.Generic; 4 | 5 | namespace IndieVisible.Domain.ValueObjects 6 | { 7 | public class LocalizationStatsVo 8 | { 9 | public Guid LocalizationId { get; set; } 10 | 11 | public int TermCount { get; set; } 12 | 13 | public List Entries { get; set; } 14 | 15 | public double LocalizationPercentage { get; internal set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /IndieVisible.Infra.Data.MongoDb/Maps/UserProfileMap.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | using MongoDB.Bson.Serialization; 3 | 4 | namespace IndieVisible.Infra.Data.MongoDb.Maps 5 | { 6 | public static class UserProfileMap 7 | { 8 | public static void Configure() 9 | { 10 | BsonClassMap.RegisterClassMap(map => 11 | { 12 | map.AutoMap(); 13 | map.MapMember(x => x.Name).SetIsRequired(true); 14 | }); 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Services/NotificationDomainService.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Interfaces.Repository; 2 | using IndieVisible.Domain.Interfaces.Services; 3 | using IndieVisible.Domain.Models; 4 | 5 | namespace IndieVisible.Domain.Services 6 | { 7 | public class NotificationDomainService : BaseDomainMongoService, INotificationDomainService 8 | { 9 | public NotificationDomainService(INotificationRepository repository) : base(repository) 10 | { 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.Data.MongoDb/Maps/UserContentMap.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | using MongoDB.Bson.Serialization; 3 | 4 | namespace IndieVisible.Infra.Data.MongoDb.Maps 5 | { 6 | public static class UserContentMap 7 | { 8 | public static void Configure() 9 | { 10 | BsonClassMap.RegisterClassMap(map => 11 | { 12 | map.AutoMap(); 13 | map.MapMember(x => x.Content).SetIsRequired(true); 14 | }); 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Staff/Controllers/SuperPowersController.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Web.Areas.Staff.Controllers.Base; 2 | using Microsoft.AspNetCore.Mvc; 3 | 4 | namespace IndieVisible.Web.Areas.Staff.Controllers 5 | { 6 | public class SuperPowersController : StaffBaseController 7 | { 8 | public IActionResult Index() 9 | { 10 | CookieMgrService.Set("user_is_admin", "true", 1, true); 11 | 12 | ViewData["user_is_admin"] = true; 13 | 14 | return View(); 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Helpers/ConstantHelper.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Application; 2 | 3 | namespace IndieVisible.Web 4 | { 5 | public static class ConstantHelper 6 | { 7 | public static string DefaultTitle { get { return "INDIEVISIBLE - The indie gamedev social network"; } } 8 | 9 | public static string DefaultDescription { get { return "The independent game developers social network. Nothing can divide us!"; } } 10 | 11 | public static string DefaultAvatar { get { return Constants.DefaultAvatar; } } 12 | } 13 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Views/Game/_GameStoreBadges.cshtml: -------------------------------------------------------------------------------- 1 | @model List 2 | @{ 3 | Layout = null; 4 | } 5 | -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 |
6 | 7 |

Posts

8 | 9 |
    10 | {% for post in site.posts %} 11 |
  • 12 | 13 | {{ post.title }} 14 |
  • 15 | {% endfor %} 16 |
17 | 18 |

subscribe via RSS

19 | 20 |
21 | -------------------------------------------------------------------------------- /IndieVisible.Infra.CrossCutting.Identity/Model/Role.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Identity; 2 | 3 | namespace IndieVisible.Infra.CrossCutting.Identity.Model 4 | { 5 | public class Role : IdentityRole 6 | { 7 | public Role() 8 | { 9 | } 10 | 11 | public Role(string name) 12 | { 13 | Name = name; 14 | NormalizedName = name.ToUpperInvariant(); 15 | } 16 | 17 | public override string ToString() 18 | { 19 | return Name; 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.CrossCutting.Identity/MongoIdentityOptions.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Infra.CrossCutting.Identity 2 | { 3 | public class MongoIdentityOptions 4 | { 5 | public string ConnectionString { get; set; } = "mongodb://localhost/default"; 6 | 7 | public string DatabaseName { get; set; } = "test"; 8 | 9 | public string UsersCollection { get; set; } = "User"; 10 | 11 | public string RolesCollection { get; set; } = "Role"; 12 | 13 | public bool UseDefaultIdentity { get; set; } = true; 14 | } 15 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.Data.MongoDb/Repository/UserBadgeRepository.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Interfaces.Repository; 2 | using IndieVisible.Domain.Models; 3 | using IndieVisible.Infra.Data.MongoDb.Interfaces; 4 | using IndieVisible.Infra.Data.MongoDb.Repository.Base; 5 | 6 | namespace IndieVisible.Infra.Data.MongoDb.Repository 7 | { 8 | public class UserBadgeRepository : BaseRepository, IUserBadgeRepository 9 | { 10 | public UserBadgeRepository(IMongoContext context) : base(context) 11 | { 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Services/UserPreferencesDomainService.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Interfaces.Repository; 2 | using IndieVisible.Domain.Interfaces.Services; 3 | using IndieVisible.Domain.Models; 4 | 5 | namespace IndieVisible.Domain.Services 6 | { 7 | public class UserPreferencesDomainService : BaseDomainMongoService, IUserPreferencesDomainService 8 | { 9 | public UserPreferencesDomainService(IUserPreferencesRepository repository) : base(repository) 10 | { 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Views/Help/Advertising.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "~/Views/Help/_HelpLayout.cshtml"; 3 | ViewData["Title"] = SharedLocalizer["advertising"].Value.ToUpper(); 4 | ViewData["HelpActive"] = "advertising"; 5 | } 6 | 7 |

8 | We don't have an advertising policy defined yet but if you want to advertise with us, send an email to Daniel Gomes and let's talk about it. 9 |

10 | 11 |

12 | If you want us to advertise on your website, you should consider becoming a partner instead. 13 |

-------------------------------------------------------------------------------- /IndieVisible.Infra.Data.MongoDb/Repository/StudyGroupRepository.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Interfaces.Repository; 2 | using IndieVisible.Domain.Models; 3 | using IndieVisible.Infra.Data.MongoDb.Interfaces; 4 | using IndieVisible.Infra.Data.MongoDb.Repository.Base; 5 | 6 | namespace IndieVisible.Infra.Data.MongoDb.Repository 7 | { 8 | public class StudyGroupRepository : BaseRepository, IStudyGroupRepository 9 | { 10 | public StudyGroupRepository(IMongoContext context) : base(context) 11 | { 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /IndieVisible.Web/ScaffoldingReadMe.txt: -------------------------------------------------------------------------------- 1 | Scaffolding has generated all the files and added the required dependencies. 2 | 3 | However the Application's Startup code may required additional changes for things to work end to end. 4 | Add the following code to the Configure method in your Application's Startup class if not already done: 5 | 6 | app.UseMvc(routes => 7 | { 8 | routes.MapRoute( 9 | name : "areas", 10 | template : "{area:exists}/{controller=Home}/{action=Index}/{id?}" 11 | ); 12 | }); 13 | -------------------------------------------------------------------------------- /IndieVisible.Infra.Data.MongoDb/Repository/GamificationRepository.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Interfaces.Repository; 2 | using IndieVisible.Domain.Models; 3 | using IndieVisible.Infra.Data.MongoDb.Interfaces; 4 | using IndieVisible.Infra.Data.MongoDb.Repository.Base; 5 | 6 | namespace IndieVisible.Infra.Data.MongoDb.Repository 7 | { 8 | public class GamificationRepository : BaseRepository, IGamificationRepository 9 | { 10 | public GamificationRepository(IMongoContext context) : base(context) 11 | { 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.Data.MongoDb/Repository/NotificationRepository.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Interfaces.Repository; 2 | using IndieVisible.Domain.Models; 3 | using IndieVisible.Infra.Data.MongoDb.Interfaces; 4 | using IndieVisible.Infra.Data.MongoDb.Repository.Base; 5 | 6 | namespace IndieVisible.Infra.Data.MongoDb.Repository 7 | { 8 | public class NotificationRepository : BaseRepository, INotificationRepository 9 | { 10 | public NotificationRepository(IMongoContext context) : base(context) 11 | { 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Filters/AjaxOnlyAttribute.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Web.Extensions; 2 | using Microsoft.AspNetCore.Mvc.Abstractions; 3 | using Microsoft.AspNetCore.Mvc.ActionConstraints; 4 | using Microsoft.AspNetCore.Routing; 5 | 6 | namespace IndieVisible.Web.Filters 7 | { 8 | public class AjaxOnlyAttribute : ActionMethodSelectorAttribute 9 | { 10 | public override bool IsValidForRequest(RouteContext routeContext, ActionDescriptor action) 11 | { 12 | return routeContext.HttpContext.Request.IsAjaxRequest(); 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /IndieVisible.Application/Interfaces/IFollowAppService.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.ValueObjects; 2 | using System; 3 | 4 | namespace IndieVisible.Application.Interfaces 5 | { 6 | public interface IFollowAppService 7 | { 8 | OperationResultVo GameFollow(Guid currentUserId, Guid gameId); 9 | 10 | OperationResultVo GameUnfollow(Guid currentUserId, Guid gameId); 11 | 12 | OperationResultVo UserFollow(Guid currentUserId, Guid followUserId); 13 | 14 | OperationResultVo UserUnfollow(Guid currentUserId, Guid followUserId); 15 | } 16 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Work/Views/JobPosition/_MyApplications.cshtml: -------------------------------------------------------------------------------- 1 | @model List 2 | 3 | @{ 4 | Layout = null; 5 | } 6 | 7 | @if (!Model.Any()) 8 | { 9 |

@SharedLocalizer["You haven't applied yet."]

10 | } 11 | else 12 | { 13 | foreach (var item in Model) 14 | { 15 | @SharedLocalizer[item.WorkType.ToDisplayName()] (@item.ApplicationDate.ToShortDateString()) 16 | } 17 | } -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/Brainstorm/BrainstormCommentViewModel.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Application.Interfaces; 2 | using System; 3 | 4 | namespace IndieVisible.Application.ViewModels.Brainstorm 5 | { 6 | public class BrainstormCommentViewModel : BaseViewModel, IComment 7 | { 8 | public Guid? ParentCommentId { get; set; } 9 | 10 | public Guid IdeaId { get; set; } 11 | 12 | public string AuthorName { get; set; } 13 | 14 | public string AuthorPicture { get; set; } 15 | 16 | public string Text { get; set; } 17 | } 18 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/JobPositonType.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace IndieVisible.Domain.Core.Enums 4 | { 5 | public enum JobPositonType 6 | { 7 | [Display(Name = "Not Informed")] 8 | NotInformed = 0, 9 | 10 | [Display(Name = "Contract")] 11 | Contract = 1, 12 | 13 | [Display(Name = "Full Time")] 14 | FullTime = 2, 15 | 16 | [Display(Name = "Part Time")] 17 | PartTime = 3, 18 | 19 | [Display(Name = "Freelance")] 20 | Freelance = 4 21 | } 22 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.Data.MongoDb/Repository/UserConnectionRepository.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Interfaces.Repository; 2 | using IndieVisible.Domain.Models; 3 | using IndieVisible.Infra.Data.MongoDb.Interfaces; 4 | using IndieVisible.Infra.Data.MongoDb.Repository.Base; 5 | 6 | namespace IndieVisible.Infra.Data.MongoDb.Repository 7 | { 8 | public class UserConnectionRepository : BaseRepository, IUserConnectionRepository 9 | { 10 | public UserConnectionRepository(IMongoContext context) : base(context) 11 | { 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Tools/Views/Localization/_ListByUser.cshtml: -------------------------------------------------------------------------------- 1 | @model List 2 | 3 | @{ 4 | Layout = null; 5 | } 6 | 7 | @if (!Model.Any()) 8 | { 9 |

@SharedLocalizer["You haven't asked for anyone's help, yet."]

10 | } 11 | else 12 | { 13 | 19 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Work/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using IndieVisible.Web 2 | @using IndieVisible.Web.Extensions 3 | @using IndieVisible.Web.Models 4 | 5 | @using IndieVisible.Application.ViewModels.Jobs 6 | 7 | @using IndieVisible.Domain.ValueObjects 8 | @using IndieVisible.Domain.Core.Enums 9 | @using IndieVisible.Domain.Core.Extensions 10 | @using IndieVisible.Web.Enums 11 | 12 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 13 | @addTagHelper *, IndieVisible.Web 14 | 15 | @inject Microsoft.Extensions.Localization.IStringLocalizer SharedLocalizer -------------------------------------------------------------------------------- /IndieVisible.Infra.Data.MongoDb/Repository/FeaturedContentRepository.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Interfaces.Repository; 2 | using IndieVisible.Domain.Models; 3 | using IndieVisible.Infra.Data.MongoDb.Interfaces; 4 | using IndieVisible.Infra.Data.MongoDb.Repository.Base; 5 | 6 | namespace IndieVisible.Infra.Data.MongoDb.Repository 7 | { 8 | public class FeaturedContentRepository : BaseRepository, IFeaturedContentRepository 9 | { 10 | public FeaturedContentRepository(IMongoContext context) : base(context) 11 | { 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.Data.MongoDb/Repository/UserPreferencesRepository.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Interfaces.Repository; 2 | using IndieVisible.Domain.Models; 3 | using IndieVisible.Infra.Data.MongoDb.Interfaces; 4 | using IndieVisible.Infra.Data.MongoDb.Repository.Base; 5 | 6 | namespace IndieVisible.Infra.Data.MongoDb.Repository 7 | { 8 | public class UserPreferencesRepository : BaseRepository, IUserPreferencesRepository 9 | { 10 | public UserPreferencesRepository(IMongoContext context) : base(context) 11 | { 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Views/Shared/_TagList.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Collections; 2 | @using System.Collections.Specialized; 3 | @{ 4 | var items = (Dictionary)ViewData["Genres"]; 5 | } 6 | 7 |
8 | @if (items != null) 9 | { 10 | foreach (var item in items) 11 | { 12 | @SharedLocalizer[item.Value.Display] 13 | } 14 | } 15 |
-------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/thirdparty/ckeditor5-build-classic/tests/manual/ckeditor.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. 3 | * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license 4 | */ 5 | 6 | /* globals window, document, console */ 7 | 8 | import ClassicEditor from '../../build/ckeditor'; 9 | 10 | ClassicEditor.create( document.querySelector( '#editor' ) ) 11 | .then( editor => { 12 | window.editor = editor; 13 | } ) 14 | .catch( err => { 15 | console.error( err.stack ); 16 | } ); 17 | -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/Notification/NotificationItemViewModel.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | 3 | namespace IndieVisible.Application.ViewModels.Notification 4 | { 5 | public class NotificationItemViewModel : BaseViewModel 6 | { 7 | public string Text { get; set; } 8 | 9 | public string Url { get; set; } 10 | 11 | public string Icon { get; set; } 12 | 13 | public string IconColor { get; set; } 14 | 15 | public bool IsRead { get; set; } 16 | 17 | public NotificationType Type { get; set; } 18 | } 19 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/BrainstormIdeaStatus.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace IndieVisible.Domain.Core.Enums 4 | { 5 | public enum BrainstormIdeaStatus 6 | { 7 | [Display(Name = "Proposed")] 8 | Proposed = 1, 9 | 10 | [Display(Name = "In Analysis")] 11 | InAnalysis = 2, 12 | 13 | [Display(Name = "Accepted")] 14 | Accepted = 3, 15 | 16 | [Display(Name = "Rejected")] 17 | Rejected = 4, 18 | 19 | [Display(Name = "Implemented")] 20 | Implemented = 5 21 | } 22 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/GameEngine.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Domain.Core.Enums 2 | { 3 | public enum GameEngine 4 | { 5 | Custom = 0, 6 | Unity = 1, 7 | Unreal = 2, 8 | GameMaker = 3, 9 | Godot = 4, 10 | AppGameKit = 5, 11 | CryEngine = 6, 12 | AmazonLumberyard = 7, 13 | RpgMaker = 8, 14 | LibGdx = 9, 15 | Urho3D = 10, 16 | Marmalade = 11, 17 | Cocos = 12, 18 | MonoGame = 13, 19 | ShiVa = 14, 20 | Hero = 15, 21 | Construct = 16 22 | } 23 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/PaymentFrequency.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace IndieVisible.Domain.Core.Enums 4 | { 5 | public enum PaymentFrequency 6 | { 7 | [Display(Name = "Not Informed")] 8 | NotInformed, 9 | 10 | [Display(Name = "Hour")] 11 | Hour, 12 | 13 | [Display(Name = "Day")] 14 | Day, 15 | 16 | [Display(Name = "Week")] 17 | Week, 18 | 19 | [Display(Name = "Month")] 20 | Month, 21 | 22 | [Display(Name = "Year")] 23 | Year 24 | } 25 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Interfaces/Infrastructure/ICacheService.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Domain.Interfaces.Infrastructure 2 | { 3 | public interface ICacheService 4 | { 5 | string Get(string key); 6 | 7 | T Get(TKey key); 8 | 9 | T Get(string key); 10 | 11 | void Set(string key, string value); 12 | 13 | void Set(string key, T value); 14 | 15 | void Set(Tkey key, T value); 16 | 17 | string GetOrCreate(string key, string value); 18 | 19 | T GetOrCreate(string key, T value); 20 | } 21 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Tools/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using IndieVisible.Web 2 | @using IndieVisible.Web.Extensions 3 | @using IndieVisible.Web.Models 4 | 5 | @using IndieVisible.Application.ViewModels.Localization 6 | 7 | @using IndieVisible.Domain.ValueObjects 8 | @using IndieVisible.Domain.Core.Enums 9 | @using IndieVisible.Domain.Core.Extensions 10 | @using IndieVisible.Web.Enums 11 | 12 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 13 | @addTagHelper *, IndieVisible.Web 14 | 15 | @inject Microsoft.Extensions.Localization.IStringLocalizer SharedLocalizer -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Staff/Views/MongoMigration/MigrationResult.cshtml: -------------------------------------------------------------------------------- 1 | @model System.Collections.Generic.KeyValuePair 2 | 3 |
4 |

Migration Result

5 |
6 | 7 |
8 | @if (Model.Value == 0) 9 | { 10 |

@ViewData["ErrorMessage"]

11 | } 12 | else 13 | { 14 | @Model.Key migrated: @Model.Value 15 | } 16 |
17 | 18 |
19 | Back 20 |
-------------------------------------------------------------------------------- /docs/.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /IndieVisible.Infra.Data.MongoDb/Maps/JobsMap.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | using MongoDB.Bson.Serialization; 3 | 4 | namespace IndieVisible.Infra.Data.MongoDb.Maps 5 | { 6 | public static class JobsMap 7 | { 8 | public static void Configure() 9 | { 10 | BsonClassMap.RegisterClassMap(map => 11 | { 12 | map.AutoMap(); 13 | }); 14 | 15 | BsonClassMap.RegisterClassMap(map => 16 | { 17 | map.AutoMap(); 18 | }); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.CrossCutting.Identity/Models/AccountViewModels/ExternalLoginViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace IndieVisible.Infra.CrossCutting.Identity.Models.AccountViewModels 4 | { 5 | public class ExternalLoginViewModel 6 | { 7 | [Required(ErrorMessage = "The username is required")] 8 | public string Username { get; set; } 9 | 10 | [Required(ErrorMessage = "The Email is required")] 11 | [EmailAddress] 12 | public string Email { get; set; } 13 | 14 | public bool UserExists { get; set; } 15 | } 16 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/IndieVisible.Domain.Core.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | IndieVisible.Domain.Core.ruleset 9 | 10 | 11 | 12 | IndieVisible.Domain.Core.ruleset 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /IndieVisible.Web/Extensions/ViewModelExtensions/UserGeneratedBaseViewModelExtensions.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Application.ViewModels; 2 | 3 | namespace IndieVisible.Web.Extensions.ViewModelExtensions 4 | { 5 | public static class UserGeneratedBaseViewModelExtensions 6 | { 7 | public static void SetShareUrl(this UserGeneratedBaseViewModel vm, string url) 8 | { 9 | vm.ShareUrl = url; 10 | } 11 | public static void SetShareText(this UserGeneratedBaseViewModel vm, string text) 12 | { 13 | vm.ShareText = text; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.4' 2 | 3 | services: 4 | indievisible-web: 5 | container_name: indievisible-web 6 | image: ${DOCKER_REGISTRY-}indievisible-web 7 | build: 8 | context: . 9 | dockerfile: IndieVisible.Web/Dockerfile 10 | networks: 11 | - indievisible-network 12 | depends_on: 13 | - 'indievisible-db' 14 | indievisible-db: 15 | container_name: indievisible-db 16 | command: mongod --auth 17 | image: mongo:latest 18 | networks: 19 | - indievisible-network 20 | networks: 21 | indievisible-network: 22 | driver: bridge -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/BrainstormSession.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | using IndieVisible.Domain.Core.Models; 3 | using System; 4 | using System.Collections.Generic; 5 | 6 | namespace IndieVisible.Domain.Models 7 | { 8 | public class BrainstormSession : Entity 9 | { 10 | public string Title { get; set; } 11 | 12 | public string Description { get; set; } 13 | 14 | public BrainstormSessionType Type { get; set; } 15 | 16 | public Guid? TargetContextId { get; set; } 17 | 18 | public virtual List Ideas { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Views/Shared/_HomeSquare.cshtml: -------------------------------------------------------------------------------- 1 | @model HomeSquareViewModel 2 | 3 | -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/BrainstormComment.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Models; 2 | using System; 3 | 4 | namespace IndieVisible.Domain.Models 5 | { 6 | public class BrainstormComment : Entity 7 | { 8 | public Guid? ParentCommentId { get; set; } 9 | public Guid SessionId { get; set; } 10 | 11 | public Guid IdeaId { get; set; } 12 | 13 | public string AuthorName { get; set; } 14 | 15 | public string AuthorPicture { get; set; } 16 | 17 | public string Text { get; set; } 18 | 19 | public virtual BrainstormIdea Idea { get; set; } 20 | } 21 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/Team.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Models; 2 | using System.Collections.Generic; 3 | 4 | namespace IndieVisible.Domain.Models 5 | { 6 | public class Team : Entity 7 | { 8 | public string Name { get; set; } 9 | 10 | public string Description { get; set; } 11 | 12 | public string Motto { get; set; } 13 | 14 | public string LogoUrl { get; set; } 15 | 16 | public bool Recruiting { get; set; } 17 | 18 | public virtual List Members { get; set; } 19 | 20 | public virtual List Games { get; set; } 21 | } 22 | } -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/User/UserConnectionViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace IndieVisible.Application.ViewModels.User 4 | { 5 | public class UserConnectionViewModel : BaseViewModel 6 | { 7 | public Guid TargetUserId { get; set; } 8 | 9 | public DateTime? ApprovalDate { get; set; } 10 | 11 | public string TargetUserName { get; set; } 12 | 13 | public string ProfileImageUrl { get; set; } 14 | public string CoverImageUrl { get; set; } 15 | public Guid ProfileId { get; set; } 16 | public string Location { get; internal set; } 17 | } 18 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Program.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Hosting; 2 | using Microsoft.Extensions.Hosting; 3 | 4 | namespace IndieVisible.Web 5 | { 6 | public class Program 7 | { 8 | public static void Main(string[] args) 9 | { 10 | CreateHostBuilder(args).Build().Run(); 11 | } 12 | 13 | public static IHostBuilder CreateHostBuilder(string[] args) => 14 | Host.CreateDefaultBuilder(args) 15 | .ConfigureWebHostDefaults(webBuilder => 16 | { 17 | webBuilder.UseStartup(); 18 | }); 19 | } 20 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Learn/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using IndieVisible.Web 2 | @using IndieVisible.Web.Extensions 3 | @using IndieVisible.Web.Models 4 | 5 | @using IndieVisible.Application.ViewModels.User 6 | @using IndieVisible.Application.ViewModels.Study 7 | 8 | @using IndieVisible.Domain.ValueObjects 9 | @using IndieVisible.Domain.Core.Enums 10 | @using IndieVisible.Domain.Core.Extensions 11 | @using IndieVisible.Web.Enums 12 | 13 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 14 | @addTagHelper *, IndieVisible.Web 15 | 16 | @inject Microsoft.Extensions.Localization.IStringLocalizer SharedLocalizer -------------------------------------------------------------------------------- /IndieVisible.Web/Models/MvcRegisterViewModel.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Infra.CrossCutting.Identity.Models.AccountViewModels; 2 | using Microsoft.AspNetCore.Mvc; 3 | using System.ComponentModel.DataAnnotations; 4 | 5 | namespace IndieVisible.Web.Models 6 | { 7 | public class MvcRegisterViewModel : RegisterViewModel 8 | { 9 | [Required(ErrorMessage = "The username is required")] 10 | [Remote("validateusername", "account", HttpMethod = "POST", ErrorMessage = "Oops! Someone already took that username!")] 11 | [Display(Name = "User Name")] 12 | public new string UserName { get; set; } 13 | } 14 | } -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/thirdparty/ckeditor5-build-classic/tests/manual/ckeditor-cjs-version.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. 3 | * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license 4 | */ 5 | 6 | /* eslint-env commonjs */ 7 | /* globals window, document, console */ 8 | 9 | const ClassicEditor = require( '../../build/ckeditor' ); 10 | 11 | ClassicEditor.create( document.querySelector( '#editor' ) ) 12 | .then( editor => { 13 | window.editor = editor; 14 | } ) 15 | .catch( err => { 16 | console.error( err.stack ); 17 | } ); 18 | -------------------------------------------------------------------------------- /IndieVisible.Infra.CrossCutting.Identity/Models/ManageViewModels/ExternalLoginsViewModel.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Authentication; 2 | using Microsoft.AspNetCore.Identity; 3 | using System.Collections.Generic; 4 | 5 | namespace IndieVisible.Infra.CrossCutting.Identity.Models.ManageViewModels 6 | { 7 | public class ExternalLoginsViewModel 8 | { 9 | public IList CurrentLogins { get; set; } 10 | 11 | public IList OtherLogins { get; set; } 12 | 13 | public bool ShowRemoveButton { get; set; } 14 | 15 | public string StatusMessage { get; set; } 16 | } 17 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/Study/StudyPlan.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Models; 2 | using System.Collections.Generic; 3 | 4 | namespace IndieVisible.Domain.Models 5 | { 6 | public class StudyPlan : Entity 7 | { 8 | public string Name { get; set; } 9 | 10 | public string Description { get; set; } 11 | 12 | public decimal ScoreToPass { get; set; } 13 | 14 | public int Order { get; set; } 15 | 16 | public List Activities { get; set; } 17 | 18 | public StudyPlan() 19 | { 20 | Activities = new List(); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /docs/.gitignore: -------------------------------------------------------------------------------- 1 | _site 2 | 3 | # Windows image file caches 4 | Thumbs.db 5 | ehthumbs.db 6 | 7 | # Folder config file 8 | Desktop.ini 9 | 10 | # Recycle Bin used on file shares 11 | $RECYCLE.BIN/ 12 | 13 | # Windows Installer files 14 | *.cab 15 | *.msi 16 | *.msm 17 | *.msp 18 | 19 | # ========================= 20 | # Operating System Files 21 | # ========================= 22 | 23 | # OSX 24 | # ========================= 25 | 26 | .DS_Store 27 | .AppleDouble 28 | .LSOverride 29 | 30 | # Icon must ends with two \r. 31 | Icon 32 | # Thumbnails 33 | ._* 34 | 35 | # Files that might appear on external disk 36 | .Spotlight-V100 37 | .Trashes 38 | -------------------------------------------------------------------------------- /IndieVisible.Domain/Interfaces/Repository/IGameRepository.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | using System; 3 | using System.Threading.Tasks; 4 | 5 | namespace IndieVisible.Domain.Interfaces.Repository 6 | { 7 | public interface IGameRepository : IRepository 8 | { 9 | Task Follow(Guid userId, Guid gameId); 10 | 11 | Task Unfollow(Guid userId, Guid gameId); 12 | 13 | Task Like(Guid userId, Guid gameId); 14 | 15 | Task Unlike(Guid userId, Guid gameId); 16 | 17 | Task CountFollowers(Guid gameId); 18 | 19 | Task CountLikes(Guid gameId); 20 | } 21 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.CrossCutting.Identity/Model/IdentityUserToken.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Infra.CrossCutting.Identity.Model 2 | { 3 | public class IdentityUserToken 4 | { 5 | /// 6 | /// The provider that the token came from. 7 | /// 8 | public string LoginProvider { get; set; } 9 | 10 | /// 11 | /// The name of the token. 12 | /// 13 | public string Name { get; set; } 14 | 15 | /// 16 | /// The value of the token. 17 | /// 18 | public string Value { get; set; } 19 | } 20 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.CrossCutting.Identity/Models/AccountViewModels/LoginViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace IndieVisible.Infra.CrossCutting.Identity.Models.AccountViewModels 4 | { 5 | public class LoginViewModel 6 | { 7 | [Required(ErrorMessage = "The username is required.")] 8 | public string UserName { get; set; } 9 | 10 | [Required(ErrorMessage = "The password is required.")] 11 | [DataType(DataType.Password)] 12 | public string Password { get; set; } 13 | 14 | [Display(Name = "Remember me?")] 15 | public bool RememberMe { get; set; } 16 | } 17 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.Data.MongoDb/Maps/TeamMap.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | using MongoDB.Bson.Serialization; 3 | 4 | namespace IndieVisible.Infra.Data.MongoDb.Maps 5 | { 6 | public static class TeamMap 7 | { 8 | public static void Configure() 9 | { 10 | BsonClassMap.RegisterClassMap(map => 11 | { 12 | map.AutoMap(); 13 | map.MapMember(x => x.Name).SetIsRequired(true); 14 | }); 15 | 16 | BsonClassMap.RegisterClassMap(map => 17 | { 18 | map.AutoMap(); 19 | }); 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/GameStatus.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace IndieVisible.Domain.Core.Enums 4 | { 5 | public enum GameStatus 6 | { 7 | [Display(Name = "Planned")] 8 | Planned, 9 | 10 | [Display(Name = "Concept")] 11 | Concept, 12 | 13 | [Display(Name = "In Progress")] 14 | InProgress, 15 | 16 | [Display(Name = "Alpha")] 17 | Alpha, 18 | 19 | [Display(Name = "Beta")] 20 | Beta, 21 | 22 | [Display(Name = "Released")] 23 | Released, 24 | 25 | [Display(Name = "Cancelled")] 26 | Cancelled 27 | } 28 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/PlatformAction.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Domain.Core.Enums 2 | { 3 | public enum PlatformAction 4 | { 5 | SimplePost = 1, 6 | ComplexPost = 2, 7 | GameAdd = 3, 8 | IdeaSuggested = 4, 9 | IdeaImplemented = 5, 10 | PopularPost = 6, 11 | PostFeatured = 7, 12 | GameFeatured = 8, 13 | PollPost = 9, 14 | PollVote = 10, 15 | TeamAdd = 11, 16 | TeamJoin = 12, 17 | TeamApply = 13, 18 | JobPositionPost = 14, 19 | LocalizationRequest = 15, 20 | LocalizationHelp = 16, 21 | CourseAddition = 17 22 | } 23 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Member/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Identity 2 | @using IndieVisible.Web 3 | @using IndieVisible.Web.Models 4 | @using IndieVisible.Infra.CrossCutting.Identity.Models 5 | @using IndieVisible.Infra.CrossCutting.Identity.Models.AccountViewModels 6 | @using IndieVisible.Infra.CrossCutting.Identity.Models.ManageViewModels 7 | @using IndieVisible.Application.ViewModels.UserPreferences 8 | 9 | @using IndieVisible.Domain.Core.Enums 10 | @using IndieVisible.Web.Enums 11 | 12 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 13 | 14 | @inject Microsoft.Extensions.Localization.IStringLocalizer SharedLocalizer -------------------------------------------------------------------------------- /IndieVisible.Domain/Specifications/IdNotEmptySpecification.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Interfaces; 2 | using System; 3 | 4 | namespace IndieVisible.Domain.Specifications 5 | { 6 | public class IdNotEmptySpecification : ISpecification where T : IEntity 7 | { 8 | public IdNotEmptySpecification() 9 | { 10 | } 11 | 12 | public string ErrorMessage => "Invalid Id!"; 13 | 14 | public bool IsSatisfied { get; private set; } 15 | 16 | public bool IsSatisfiedBy(T item) 17 | { 18 | IsSatisfied = item.UserId != Guid.Empty; 19 | 20 | return IsSatisfied; 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /IndieVisible.Application/Interfaces/ICrudAppService.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.ValueObjects; 2 | using System; 3 | 4 | namespace IndieVisible.Application.Interfaces 5 | { 6 | public interface ICrudAppService 7 | { 8 | 9 | OperationResultVo Count(Guid currentUserId); 10 | 11 | OperationResultListVo GetAll(Guid currentUserId); 12 | 13 | OperationResultVo GetAllIds(Guid currentUserId); 14 | 15 | OperationResultVo GetById(Guid currentUserId, Guid id); 16 | 17 | OperationResultVo Remove(Guid currentUserId, Guid id); 18 | 19 | OperationResultVo Save(Guid currentUserId, T viewModel); 20 | } 21 | } -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/Study/StudyPlanViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace IndieVisible.Application.ViewModels.Study 4 | { 5 | public class StudyPlanViewModel : BaseViewModel 6 | { 7 | public string Name { get; set; } 8 | 9 | public string Description { get; set; } 10 | 11 | public decimal ScoreToPass { get; set; } 12 | 13 | public int Order { get; set; } 14 | 15 | public List Activities { get; set; } 16 | 17 | public StudyPlanViewModel() 18 | { 19 | Activities = new List(); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /IndieVisible.Domain/Interfaces/Repository/ITeamRepository.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | using System; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace IndieVisible.Domain.Interfaces.Repository 7 | { 8 | public interface ITeamRepository : IRepository 9 | { 10 | IQueryable GetTeamsByMemberUserId(Guid userId); 11 | 12 | IQueryable GetMemberships(Func where); 13 | 14 | TeamMember GetMembership(Guid teamId, Guid userId); 15 | 16 | void UpdateMembership(Guid teamId, TeamMember member); 17 | 18 | Task RemoveMember(Guid teamId, Guid userId); 19 | } 20 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/TeamMember.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | using IndieVisible.Domain.Core.Models; 3 | using System; 4 | 5 | namespace IndieVisible.Domain.Models 6 | { 7 | public class TeamMember : Entity 8 | { 9 | public bool Leader { get; set; } 10 | 11 | public InvitationStatus InvitationStatus { get; set; } 12 | 13 | public string Name { get; set; } 14 | 15 | public string Role { get; set; } 16 | 17 | public string Work { get; set; } 18 | 19 | public string Quote { get; set; } 20 | 21 | public Guid TeamId { get; set; } 22 | 23 | public virtual Team Team { get; set; } 24 | } 25 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.Data.MongoDb/Maps/BrainstormMap.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | using MongoDB.Bson.Serialization; 3 | 4 | namespace IndieVisible.Infra.Data.MongoDb.Maps 5 | { 6 | public static class BrainstormMap 7 | { 8 | public static void Configure() 9 | { 10 | BsonClassMap.RegisterClassMap(map => 11 | { 12 | map.AutoMap(); 13 | map.MapMember(x => x.Type).SetIsRequired(true); 14 | }); 15 | 16 | BsonClassMap.RegisterClassMap(map => 17 | { 18 | map.AutoMap(); 19 | }); 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | Agency Jekyll theme 2 | ==================== 3 | 4 | Agency theme based on [Agency bootstrap theme ](https://startbootstrap.com/template-overviews/agency/) 5 | 6 | # How to use 7 | 8 | ###Screenshots 9 | 10 | Screenshots projects are in '/_posts' 11 | 12 | Images are in '/img/screenshots' 13 | 14 | ###Timeline 15 | 16 | Images are in '/img/timeline/' 17 | 18 | ###Team 19 | 20 | Team members and info are in '_config.yml' 21 | 22 | Images are in '/img/team/' 23 | 24 | 25 | # Demo 26 | 27 | View this jekyll theme in action [here](https://y7kim.github.io/agency-jekyll-theme) 28 | 29 | ========= 30 | For more details, read [documentation](http://jekyllrb.com/) 31 | -------------------------------------------------------------------------------- /docs/js/cbpAnimatedHeader.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * cbpAnimatedHeader.min.js v1.0.0 3 | * http://www.codrops.com 4 | * 5 | * Licensed under the MIT license. 6 | * http://www.opensource.org/licenses/mit-license.php 7 | * 8 | * Copyright 2013, Codrops 9 | * http://www.codrops.com 10 | */ 11 | var cbpAnimatedHeader=(function(){var b=document.documentElement,g=document.querySelector(".cbp-af-header"),e=false,a=100;function f(){window.addEventListener("scroll",function(h){if(!e){e=true;setTimeout(d,250)}},false)}function d(){var h=c();if(h>=a){classie.add(g,"cbp-af-header-shrink")}else{classie.remove(g,"cbp-af-header-shrink")}e=false}function c(){return window.pageYOffset||b.scrollTop}f()})(); -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/JobPositionStatus.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace IndieVisible.Domain.Core.Enums 4 | { 5 | public enum JobPositionStatus 6 | { 7 | [Display(Name = "Draft")] 8 | Draft = 1, 9 | 10 | [Display(Name = "Cancelled")] 11 | Cancelled = 2, 12 | 13 | [Display(Name = "Open for Application")] 14 | OpenForApplication = 3, 15 | 16 | [Display(Name = "Closed for Application")] 17 | ClosedForApplication = 4, 18 | 19 | [Display(Name = "In Analysis")] 20 | InAnalysis = 5, 21 | 22 | [Display(Name = "Fulfilled")] 23 | Fulfilled = 6 24 | } 25 | } -------------------------------------------------------------------------------- /docker-compose.override.yml: -------------------------------------------------------------------------------- 1 | version: '3.4' 2 | 3 | services: 4 | indievisible-web: 5 | ports: 6 | - '32080:80' 7 | - '32443:443' 8 | environment: 9 | - ASPNETCORE_ENVIRONMENT=Development 10 | - ASPNETCORE_URLS=https://+:443;http://+:80 11 | volumes: 12 | - ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro 13 | - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro 14 | env_file: 15 | - IndieVisible.Web/web.env 16 | indievisible-db: 17 | ports: 18 | - '27017:27017' 19 | environment: 20 | - MONGO_INITDB_ROOT_USERNAME=root 21 | - MONGO_INITDB_ROOT_PASSWORD=root 22 | - MONGO_INITDB_DATABASE=admin -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/AuthorBaseViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel.DataAnnotations; 3 | 4 | namespace IndieVisible.Application.ViewModels 5 | { 6 | public class AuthorBaseViewModel 7 | { 8 | public Guid UserId { get; set; } 9 | 10 | [Display(Name = "Author Picture")] 11 | public string AuthorPicture { get; set; } 12 | 13 | [Display(Name = "Author Name")] 14 | public string AuthorName { get; set; } 15 | 16 | public AuthorBaseViewModel() : base() 17 | { 18 | } 19 | 20 | public AuthorBaseViewModel(Guid userId) 21 | { 22 | UserId = userId; 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Interfaces/Services/IPollDomainService.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | using System; 3 | using System.Collections.Generic; 4 | 5 | namespace IndieVisible.Domain.Interfaces.Services 6 | { 7 | public interface IPollDomainService : IDomainService 8 | { 9 | Poll GetByUserContentId(Guid userContentId); 10 | 11 | Poll GetPollByOptionId(Guid id); 12 | 13 | void AddVote(Guid userId, Guid pollId, Guid optionId); 14 | 15 | void ReplaceVote(Guid userId, Guid pollId, Guid oldOptionId, Guid newOptionId); 16 | 17 | IEnumerable GetVotes(Guid pollId); 18 | 19 | void RemoveByContentId(Guid userContentId); 20 | } 21 | } -------------------------------------------------------------------------------- /IndieVisible.Application/Interfaces/IGamificationAppService.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Application.ViewModels.Gamification; 2 | using IndieVisible.Application.ViewModels.User; 3 | using IndieVisible.Domain.ValueObjects; 4 | using System; 5 | 6 | namespace IndieVisible.Application.Interfaces 7 | { 8 | public interface IGamificationAppService 9 | { 10 | OperationResultListVo GetAll(); 11 | 12 | OperationResultVo FillProfileGamificationDetails(Guid currentUserId, ref ProfileViewModel vm); 13 | 14 | OperationResultListVo GetAllLevels(); 15 | 16 | OperationResultListVo GetBadgesByUserId(Guid userId); 17 | } 18 | } -------------------------------------------------------------------------------- /IndieVisible.Application/Interfaces/INotificationAppService.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Application.ViewModels.Notification; 2 | using IndieVisible.Domain.Core.Enums; 3 | using IndieVisible.Domain.ValueObjects; 4 | using System; 5 | 6 | namespace IndieVisible.Application.Interfaces 7 | { 8 | public interface INotificationAppService : ICrudAppService 9 | { 10 | OperationResultListVo GetByUserId(Guid userId, int count); 11 | 12 | OperationResultVo Notify(Guid currentUserId, Guid targetUserId, NotificationType notificationType, Guid targetId, string text, string url); 13 | 14 | OperationResultVo MarkAsRead(Guid id); 15 | } 16 | } -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/Study/StudyGroupViewModel.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | using System; 3 | 4 | namespace IndieVisible.Application.ViewModels.Study 5 | { 6 | public class StudyGroupViewModel 7 | { 8 | public Guid? DefaultPlanId { get; set; } 9 | 10 | public string Type { get; set; } 11 | 12 | public string Name { get; set; } 13 | 14 | public string Description { get; set; } 15 | 16 | public SupportedLanguage Language { get; set; } 17 | 18 | public DateTime? StartDate { get; set; } 19 | 20 | public DateTime? EndDate { get; set; } 21 | 22 | public decimal ScoreToPass { get; set; } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /IndieVisible.Infra.CrossCutting.Identity/Models/ManageViewModels/IndexViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace IndieVisible.Infra.CrossCutting.Identity.Models.ManageViewModels 4 | { 5 | public class IndexViewModel 6 | { 7 | [Display(Name = "UserName")] 8 | public string UserName { get; set; } 9 | 10 | public bool IsEmailConfirmed { get; set; } 11 | 12 | [Required] 13 | [EmailAddress] 14 | public string Email { get; set; } 15 | 16 | [Phone] 17 | [Display(Name = "Phone number")] 18 | public string PhoneNumber { get; set; } 19 | 20 | public string StatusMessage { get; set; } 21 | } 22 | } -------------------------------------------------------------------------------- /IndieVisible.Web/RewriterRules/NonWwwRule.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Http; 2 | using Microsoft.AspNetCore.Rewrite; 3 | 4 | namespace IndieVisible.Web.RewriterRules 5 | { 6 | public class NonWwwRule : IRule 7 | { 8 | public void ApplyRule(RewriteContext context) 9 | { 10 | HostString host = context.HttpContext.Request.Host; 11 | 12 | if (host.HasValue && host.Value.ToLower().Contains(".indievisible.net")) 13 | { 14 | context.Result = RuleResult.SkipRemainingRules; 15 | } 16 | else 17 | { 18 | context.Result = RuleResult.ContinueRules; 19 | } 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/Study/StudyGroup.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | using IndieVisible.Domain.Core.Models; 3 | using System; 4 | 5 | namespace IndieVisible.Domain.Models 6 | { 7 | public class StudyGroup : Entity 8 | { 9 | public Guid? DefaultPlanId { get; set; } 10 | 11 | public string Type { get; set; } 12 | 13 | public string Name { get; set; } 14 | 15 | public string Description { get; set; } 16 | 17 | public SupportedLanguage Language { get; set; } 18 | 19 | public DateTime? StartDate { get; set; } 20 | 21 | public DateTime? EndDate { get; set; } 22 | 23 | public decimal ScoreToPass { get; set; } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Staff/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Identity 2 | @using IndieVisible.Web 3 | @using IndieVisible.Web.Models 4 | @using IndieVisible.Infra.CrossCutting.Identity.Models 5 | @using IndieVisible.Infra.CrossCutting.Identity.Models.AccountViewModels 6 | @using IndieVisible.Infra.CrossCutting.Identity.Models.ManageViewModels 7 | @using IndieVisible.Application.ViewModels.UserPreferences 8 | 9 | @using IndieVisible.Application.ViewModels.Content 10 | 11 | @using IndieVisible.Domain.Core.Enums 12 | @using IndieVisible.Web.Enums 13 | 14 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 15 | @inject Microsoft.Extensions.Localization.IStringLocalizer SharedLocalizer -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Work/Views/JobPosition/_List.cshtml: -------------------------------------------------------------------------------- 1 | @model IEnumerable 2 | 3 | @{ 4 | Layout = null; 5 | var noItemsModel = new ListNoItemsViewModel("fas fa-dizzy", "What? We have no job positions here! If you want to hire, add some positions!"); 6 | 7 | var description = ViewData["ListDescription"] == null ? SharedLocalizer["Jobs"] : (string)ViewData["ListDescription"]; 8 | } 9 | 10 | @if (!Model.Any()) 11 | { 12 | 13 | } 14 | else 15 | { 16 |

@SharedLocalizer[description]

17 | 18 | @foreach (var jobPosition in Model) 19 | { 20 | 21 | } 22 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Views/Shared/_AuthorDetails.cshtml: -------------------------------------------------------------------------------- 1 | @model IUserGeneratedContent 2 | @{ 3 | Layout = null; 4 | } 5 | 6 | -------------------------------------------------------------------------------- /IndieVisible.Web/wwwroot/css/typography.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-weight: 400; 3 | font-size: 14px; 4 | } 5 | 6 | .h1, .h2, .h3, .h4, .h5, .h6, body, h1, h2, h3, h4, h5, h6 { 7 | font-family: Poppins, sans-serif; 8 | } 9 | 10 | h4, .h4, h5, .h5, h6, .h6 { 11 | margin-bottom: 10px; 12 | } 13 | 14 | h1 { 15 | font-size: 36px; 16 | } 17 | 18 | h2 { 19 | font-size: 24px; 20 | } 21 | 22 | h3 { 23 | font-size: 21px; 24 | } 25 | 26 | h4 { 27 | line-height: 22px; 28 | font-size: 18px; 29 | } 30 | 31 | h5 { 32 | line-height: 18px; 33 | font-size: 16px; 34 | font-weight: 400; 35 | } 36 | 37 | h6 { 38 | line-height: 16px; 39 | font-size: 14px; 40 | font-weight: 400; 41 | } -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/Content/ActivityFeedRequestViewModel.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | using System; 3 | using System.Collections.Generic; 4 | 5 | namespace IndieVisible.Application.ViewModels.Content 6 | { 7 | public class ActivityFeedRequestViewModel : RequestBaseViewModel 8 | { 9 | public int Count { get; set; } 10 | 11 | public Guid? GameId { get; set; } 12 | 13 | public Guid? UserId { get; set; } 14 | 15 | public List Languages { get; set; } 16 | 17 | public Guid? OldestId { get; set; } 18 | 19 | public DateTime? OldestDate { get; set; } 20 | 21 | public bool? ArticlesOnly { get; set; } 22 | } 23 | } -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/Poll/PollOptionViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.Globalization; 2 | 3 | namespace IndieVisible.Application.ViewModels.Poll 4 | { 5 | public class PollOptionViewModel : BaseViewModel 6 | { 7 | public string Text { get; set; } 8 | 9 | public string Image { get; set; } 10 | 11 | public int Votes { get; set; } 12 | 13 | public decimal VotePercentage { get; set; } 14 | 15 | public string VotePercentageText 16 | { 17 | get 18 | { 19 | return VotePercentage.ToString("n2", new CultureInfo("en-us")); 20 | } 21 | } 22 | 23 | public bool CurrentUserVoted { get; set; } 24 | } 25 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/FeaturedContent.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Models; 2 | using System; 3 | 4 | namespace IndieVisible.Domain.Models 5 | { 6 | public class FeaturedContent : Entity 7 | { 8 | public Guid OriginalUserId { get; set; } 9 | 10 | public Guid UserContentId { get; set; } 11 | 12 | public bool Active { get; set; } 13 | 14 | public string Title { get; set; } 15 | 16 | public string Introduction { get; set; } 17 | 18 | public string FeaturedImage { get; set; } 19 | 20 | public DateTime StartDate { get; set; } 21 | 22 | public DateTime? EndDate { get; set; } 23 | 24 | public string ImageUrl { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/JobExperienceLevel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace IndieVisible.Domain.Core.Enums 4 | { 5 | public enum JobExperienceLevel 6 | { 7 | [Display(Name = "Not Informed")] 8 | NotInformed = 0, 9 | 10 | [Display(Name = "All Levels")] 11 | AllLevels = 1, 12 | 13 | [Display(Name = "Associate")] 14 | Associate = 2, 15 | 16 | [Display(Name = "Junior")] 17 | Junior = 3, 18 | 19 | [Display(Name = "Mid-Senior")] 20 | MidSenior = 4, 21 | 22 | [Display(Name = "Senior")] 23 | Senior = 5, 24 | 25 | [Display(Name = "Director")] 26 | Director = 6 27 | } 28 | } -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/Brainstorm/BrainstormSessionViewModel.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | using System; 3 | using System.ComponentModel.DataAnnotations; 4 | 5 | namespace IndieVisible.Application.ViewModels.Brainstorm 6 | { 7 | public class BrainstormSessionViewModel : BaseViewModel 8 | { 9 | [Required] 10 | [Display(Name = "Title")] 11 | public string Title { get; set; } 12 | 13 | [Required] 14 | [Display(Name = "Description")] 15 | public string Description { get; set; } 16 | 17 | [Display(Name = "Type")] 18 | public BrainstormSessionType Type { get; set; } 19 | 20 | public Guid? TargetContextId { get; set; } 21 | } 22 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Interfaces/Services/IGameDomainService.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | using IndieVisible.Domain.Models; 3 | using System; 4 | using System.Linq; 5 | 6 | namespace IndieVisible.Domain.Interfaces.Services 7 | { 8 | public interface IGameDomainService : IDomainService 9 | { 10 | IQueryable Get(GameGenre genre, Guid userId, Guid? teamId); 11 | 12 | bool Follow(Guid userId, Guid gameId); 13 | 14 | bool Unfollow(Guid userId, Guid gameId); 15 | 16 | bool Like(Guid userId, Guid gameId); 17 | 18 | bool Unlike(Guid userId, Guid gameId); 19 | 20 | int CountFollowers(Guid gameId); 21 | 22 | int CountLikes(Guid gameId); 23 | } 24 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.Data.MongoDb/Maps/PollMap.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | using MongoDB.Bson.Serialization; 3 | 4 | namespace IndieVisible.Infra.Data.MongoDb.Maps 5 | { 6 | public static class PollMap 7 | { 8 | public static void Configure() 9 | { 10 | BsonClassMap.RegisterClassMap(map => 11 | { 12 | map.AutoMap(); 13 | }); 14 | 15 | BsonClassMap.RegisterClassMap(map => 16 | { 17 | map.AutoMap(); 18 | }); 19 | 20 | BsonClassMap.RegisterClassMap(map => 21 | { 22 | map.AutoMap(); 23 | }); 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /docker-compose.dcproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 2.1 5 | Linux 6 | 96ff3b45-0693-40ed-ba8e-fd0f2f9d4125 7 | LaunchBrowser 8 | {Scheme}://localhost:{ServicePort}/ 9 | indievisible-web 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: indievisible 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /.github/workflows/dotnet-core.yml: -------------------------------------------------------------------------------- 1 | name: .NET Core 2 | 3 | on: 4 | push: 5 | branches: [ master ] 6 | pull_request: 7 | branches: [ master ] 8 | 9 | jobs: 10 | build: 11 | 12 | runs-on: ubuntu-latest 13 | 14 | steps: 15 | - uses: actions/checkout@v2 16 | - name: Setup .NET Core 17 | uses: actions/setup-dotnet@v1 18 | with: 19 | dotnet-version: 3.1.101 20 | - name: Install dependencies 21 | run: dotnet restore IndieVisible.sln 22 | - name: Build 23 | run: dotnet build IndieVisible.Web/IndieVisible.Web.csproj --configuration Release --no-restore 24 | - name: Test 25 | run: dotnet test IndieVisible.Web/IndieVisible.Web.csproj --no-restore --verbosity normal 26 | -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/Poll/PollViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace IndieVisible.Application.ViewModels.Poll 5 | { 6 | public class PollViewModel : BaseViewModel 7 | { 8 | public string Title { get; set; } 9 | 10 | public bool MultipleChoice { get; set; } 11 | 12 | public bool UsersCanAddOptions { get; set; } 13 | 14 | public DateTime? CloseDate { get; set; } 15 | 16 | public int TotalVotes { get; set; } 17 | 18 | public List PollOptions { get; set; } 19 | 20 | public PollViewModel() 21 | { 22 | PollOptions = new List(); 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/ExternalLinkBaseViewModel.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | using System; 3 | 4 | namespace IndieVisible.Application.ViewModels 5 | { 6 | public class ExternalLinkBaseViewModel 7 | { 8 | public Guid EntityId { get; set; } 9 | 10 | public int Order { get; set; } 11 | 12 | public ExternalLinkType Type { get; set; } 13 | 14 | public ExternalLinkProvider Provider { get; set; } 15 | 16 | public string Value { get; set; } 17 | 18 | public string IconClass { get; set; } 19 | 20 | public string ColorClass { get; set; } 21 | 22 | public string Display { get; set; } 23 | 24 | public bool IsStore { get; set; } 25 | } 26 | } -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/Jobs/JobApplicantViewModel.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Interfaces.Models; 2 | using System; 3 | 4 | namespace IndieVisible.Application.ViewModels.Jobs 5 | { 6 | public class JobApplicantViewModel : BaseViewModel, IUserProfileBasic 7 | { 8 | public Guid JobPositionId { get; set; } 9 | public string Email { get; set; } 10 | public string CoverLetter { get; set; } 11 | 12 | public string Name { get; set; } 13 | public string ProfileImageUrl { get; set; } 14 | public string CoverImageUrl { get; set; } 15 | public string Country { get; set; } 16 | public string Location { get; set; } 17 | public decimal Score { get; set; } 18 | } 19 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Models/BrainstormIdea.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | using IndieVisible.Domain.Core.Models; 3 | using System; 4 | using System.Collections.Generic; 5 | 6 | namespace IndieVisible.Domain.Models 7 | { 8 | public class BrainstormIdea : Entity 9 | { 10 | public string Title { get; set; } 11 | 12 | public string Description { get; set; } 13 | 14 | public Guid SessionId { get; set; } 15 | 16 | public BrainstormIdeaStatus Status { get; set; } 17 | 18 | public virtual BrainstormSession Session { get; set; } 19 | 20 | public virtual List Comments { get; set; } 21 | 22 | public virtual List Votes { get; set; } 23 | } 24 | } -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/Poll/PollResultsViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace IndieVisible.Application.ViewModels.Poll 5 | { 6 | public class PollResultsViewModel 7 | { 8 | public List OptionResults { get; set; } 9 | public int TotalVotes { get; set; } 10 | 11 | public PollResultsViewModel() 12 | { 13 | OptionResults = new List(); 14 | } 15 | } 16 | 17 | public class PollOptionResultsViewModel 18 | { 19 | public Guid OptionId { get; set; } 20 | 21 | public int VoteCount { get; set; } 22 | 23 | public string Percentage { get; set; } 24 | } 25 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Interfaces/Base/IDomainService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Linq.Expressions; 5 | 6 | namespace IndieVisible.Domain.Interfaces 7 | { 8 | public interface IDomainService 9 | { 10 | int Count(); 11 | 12 | int Count(Expression> where); 13 | 14 | IEnumerable GetAll(); 15 | 16 | IEnumerable GetAllIds(); 17 | 18 | IQueryable Search(Expression> where); 19 | 20 | T GetById(Guid id); 21 | 22 | IEnumerable GetByUserId(Guid userId); 23 | 24 | Guid Add(T model); 25 | 26 | Guid Update(T model); 27 | 28 | void Remove(Guid id); 29 | } 30 | } -------------------------------------------------------------------------------- /IndieVisible.Domain.Core/Enums/SupportedLanguage.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Attributes; 2 | 3 | namespace IndieVisible.Domain.Core.Enums 4 | { 5 | public enum SupportedLanguage 6 | { 7 | [UiInfo(Culture = "en-US")] 8 | English = 1, 9 | 10 | [UiInfo(Culture = "pt-BR")] 11 | Portuguese = 2, 12 | 13 | [UiInfo(Culture = "ru-RU")] 14 | Russian = 3, 15 | 16 | [UiInfo(Culture = "es")] 17 | Spanish = 4, 18 | 19 | [UiInfo(Culture = "bs")] 20 | Bosnian = 5, 21 | 22 | [UiInfo(Culture = "sr")] 23 | Serbian = 6, 24 | 25 | [UiInfo(Culture = "hr")] 26 | Croatian = 7, 27 | 28 | [UiInfo(Culture = "de")] 29 | German = 8 30 | } 31 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/Specifications/UserIsOwnerSpecification.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Interfaces; 2 | using System; 3 | 4 | namespace IndieVisible.Domain.Specifications 5 | { 6 | public class UserIsOwnerSpecification : ISpecification where T : IEntity 7 | { 8 | private Guid userId; 9 | 10 | public UserIsOwnerSpecification(Guid userId) 11 | { 12 | this.userId = userId; 13 | } 14 | 15 | public string ErrorMessage => "This is not yours!"; 16 | 17 | public bool IsSatisfied { get; private set; } 18 | 19 | public bool IsSatisfiedBy(T item) 20 | { 21 | IsSatisfied = item.UserId == userId; 22 | 23 | return IsSatisfied; 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/ValueObjects/SelectListItemVo.cs: -------------------------------------------------------------------------------- 1 | namespace IndieVisible.Domain.ValueObjects 2 | { 3 | public class SelectListItemVo 4 | { 5 | public string Value { get; set; } 6 | 7 | public string Text { get; set; } 8 | 9 | public bool Selected { get; set; } 10 | 11 | public SelectListItemVo() 12 | { 13 | } 14 | 15 | public SelectListItemVo(string text, string value) 16 | { 17 | Text = text; 18 | Value = value; 19 | } 20 | } 21 | 22 | public class SelectListItemVo 23 | { 24 | public TValue Value { get; set; } 25 | 26 | public string Text { get; set; } 27 | 28 | public bool Selected { get; set; } 29 | } 30 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.CrossCutting.Identity/Models/AccountViewModels/LoginWithTwoFactorViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace IndieVisible.Infra.CrossCutting.Identity.Models.AccountViewModels 4 | { 5 | public class LoginWithTwoFactorViewModel 6 | { 7 | [Required] 8 | [StringLength(7, ErrorMessage = "The {0} must be at least {2} and at max {1} characters long.", MinimumLength = 6)] 9 | [DataType(DataType.Text)] 10 | [Display(Name = "Authenticator code")] 11 | public string TwoFactorCode { get; set; } 12 | 13 | [Display(Name = "Remember this machine")] 14 | public bool RememberMachine { get; set; } 15 | 16 | public bool RememberMe { get; set; } 17 | } 18 | } -------------------------------------------------------------------------------- /IndieVisible.Infra.CrossCutting.Identity/Models/ManageViewModels/EnableAuthenticatorViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using System.ComponentModel.DataAnnotations; 3 | 4 | namespace IndieVisible.Infra.CrossCutting.Identity.Models.ManageViewModels 5 | { 6 | public class EnableAuthenticatorViewModel 7 | { 8 | [Required] 9 | [StringLength(7, ErrorMessage = "The {0} must be at least {2} and at max {1} characters long.", MinimumLength = 6)] 10 | [DataType(DataType.Text)] 11 | [Display(Name = "Verification Code")] 12 | public string Code { get; set; } 13 | 14 | [ReadOnly(true)] 15 | public string SharedKey { get; set; } 16 | 17 | public string AuthenticatorUri { get; set; } 18 | } 19 | } -------------------------------------------------------------------------------- /IndieVisible.Domain/IndieVisible.Domain.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | IndieVisible 6 | 7 | 8 | 9 | IndieVisible.Domain.ruleset 10 | 11 | 12 | 13 | IndieVisible.Domain.ruleset 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /IndieVisible.Infra.Data.MongoDb/Maps/TranslationMap.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Models; 2 | using MongoDB.Bson.Serialization; 3 | 4 | namespace IndieVisible.Infra.Data.MongoDb.Maps 5 | { 6 | public static class TranslationMap 7 | { 8 | public static void Configure() 9 | { 10 | BsonClassMap.RegisterClassMap(map => 11 | { 12 | map.AutoMap(); 13 | }); 14 | 15 | BsonClassMap.RegisterClassMap(map => 16 | { 17 | map.AutoMap(); 18 | }); 19 | 20 | BsonClassMap.RegisterClassMap(map => 21 | { 22 | map.AutoMap(); 23 | }); 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /IndieVisible.Web/Areas/Gamification/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Identity 2 | @using IndieVisible.Web 3 | @using IndieVisible.Web.Models 4 | @using IndieVisible.Infra.CrossCutting.Identity.Models 5 | @using IndieVisible.Infra.CrossCutting.Identity.Models.AccountViewModels 6 | @using IndieVisible.Infra.CrossCutting.Identity.Models.ManageViewModels 7 | @using IndieVisible.Application.ViewModels.UserPreferences 8 | @using IndieVisible.Application.ViewModels.User 9 | 10 | @using IndieVisible.Domain.Core.Enums 11 | @using IndieVisible.Web.Enums 12 | @using IndieVisible.Domain.Core.Attributes 13 | 14 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 15 | 16 | @inject Microsoft.Extensions.Localization.IStringLocalizer SharedLocalizer -------------------------------------------------------------------------------- /IndieVisible.Web/Views/Shared/_TagManagerHead.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 16 | 17 | -------------------------------------------------------------------------------- /IndieVisible.Application/Interfaces/ICommentableItem.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Application.ViewModels; 2 | using IndieVisible.Domain.Core.Enums; 3 | using System; 4 | using System.Collections.Generic; 5 | 6 | namespace IndieVisible.Application.Interfaces 7 | { 8 | public interface ICommentableItem 9 | { 10 | Guid Id { get; set; } 11 | 12 | UserContentType UserContentType { get; set; } 13 | 14 | string Url { get; set; } 15 | 16 | string Title { get; set; } 17 | 18 | SupportedLanguage Language { get; set; } 19 | 20 | bool CurrentUserLiked { get; set; } 21 | 22 | List Comments { get; set; } 23 | 24 | int LikeCount { get; set; } 25 | 26 | int CommentCount { get; set; } 27 | } 28 | } -------------------------------------------------------------------------------- /IndieVisible.Application/ViewModels/Gamification/UserBadgeViewModel.cs: -------------------------------------------------------------------------------- 1 | using IndieVisible.Domain.Core.Enums; 2 | using IndieVisible.Domain.Core.Extensions; 3 | using System; 4 | using System.Collections.Generic; 5 | 6 | namespace IndieVisible.Application.ViewModels.Gamification 7 | { 8 | public class UserBadgeViewModel : BaseViewModel 9 | { 10 | public BadgeType Badge { get; set; } 11 | 12 | public string Description 13 | { 14 | get 15 | { 16 | return Badge.ToUiInfo().Description; 17 | } 18 | } 19 | 20 | public List References { get; set; } 21 | 22 | public UserBadgeViewModel() 23 | { 24 | References = new List(); 25 | } 26 | } 27 | } --------------------------------------------------------------------------------