Code Monkey home page Code Monkey logo

devadventcalendar's Introduction

DevAdventCalendar

Follow DevAdventCalendar Follow DevAdventCalendar

DevAdventCalendar web app for online competition for programmers : www.devadventcalendar.pl

GitHub issues GitHub closed issues GitHub closed pull requests

GitHub contributors GitHub last commit

Environment Build Deployment Quality Coverage
PROD Build Deploy Quality Gate Status codecov
DEV Build Deploy codecov

Projects in solution

  • DevAdventCalendarCompetition - main project with Controllers and Views

  • DevAdventCalendarCompetition.Services - class library for logic operations

  • DevAdventCalendarCompetition.Repository - class library for database operations

  • DevAdventCalendarCompetition.Tests - unit and integration tests that covers services and controllers (xUnit)

  • DevAdventCalendarCompetition.TestResultService - external service calculating user points based on a custom algorithm

  • DevAdventCalendarCompetition.TestResultService.Tests - unit tests for TestResultService (xUnit)

Contributing

Please read CONTRIBUTING.md for details.

Suggest a new feature

We use GitHub issues to track public features. Suggest a new feature by opening a new issue (the template has already been created, simply complete it).

Report bug

We use GitHub issues to track public bugs. Report a bug by opening a new issue of type bug (the template has already been created, simply complete it).

Used Tools

Docker

Docker is an open platform that enables developers and administrators to build images, ship, and run distributed applications in a loosely isolated environment called a container. This approach enables efficient application lifecycle management between development, QA, and production environments.

Application is using Docker to work on VPS. Additional Docker-compose helping with configure for all of this

Docker documentation

Swagger

Useful tool to check api endpoints. It is generated based on Controllers and attributes and can test any rest calls from this page. Can be access by: pagedomain (or localhost)/swagger/. Swagger documentation

MailHog

MailHog is an email testing tool for developers. More info on GitHub page.

devadventcalendar's People

Contributors

aluspl avatar bananbe avatar blackmorzan avatar darek-grund avatar gkotfis avatar jumpeq avatar kamil4921 avatar krystiankolad avatar krzysztofowsiany avatar lkurzyniec avatar me245 avatar mejtika avatar michal-franc avatar mskuratowski avatar ocode123 avatar patrikulus avatar patrykmoga avatar pawelsulzycki avatar piechowiakmichal avatar programista-artysta avatar smiechuskce avatar szrtgreg avatar wtobor avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

devadventcalendar's Issues

Problems with unicode (polish only?) characters

Something is wrong with displaying unicode (polish only?) characters. Should be tested using different mail accounts/providers and browsers.

Google Chrome/GMail webmail - checked, lack of polish characters.

Fix input font color

Fix input font color - now is pink ;p should be dark gray or something like that

Setup CI/CD

We can use circleci, codeship, travis or anything else what is as-a-service and integrates with GitHub.

Fix login page

Uncomment @await Html.PartialAsync("_LoginPartial"); part in _Layout

  • translate to polish
  • update views
  • remove unused code
  • check logic
    image

Builiding Views

in dotnet publish all cshtml are pre-rendering, so if something is broken there, it stop build. In few views, there aren't valid models (not only namespace but also classes doesn't exist).
To test dockerfile, we should focus on fixing it.

Create calendar layout

At the beginning, all days should be closed (no info about sponsor).

When user is logged in, after click on the day, there should be request to the server and logic:

  • if there is opened test for this day -> open test
  • if there is closed test for this day -> show alert with sad santa and some text (e.x. "Niestety, spóźniłeś się...")
  • if there is no opened or closed test for this day -> show alert with sad santa and some text (e.x. "Poczekaj na otwarcie okienka")

When user is not logged in, all days should be closed (not clickable).

image

Update documentation

Update documentation:

  • How to start working with project
    • clone repo
    • use CodeMaid with default config (CodeMaid.config in solution) (add link to CodeMaid website)
    • create feature-branch from develop
    • make changes
    • remember to check if code compiles without errors, tests pass
    • push changes
    • create pull request (there is template for pull request, just fill it in)

Fix CanStartTestAttribute

Refactor is needed. The content of this class was commented when original app was ported to .NET Core.

Add automapper logic

Write logic for Automapper. Example:

CreateMap<CalendarEvent, CalendarEventForm>()
    .ForMember(dest => dest.EventDate, opt => opt.MapFrom(src => src.Date.Date))
    .ForMember(dest => dest.EventHour, opt => opt.MapFrom(src => src.Date.Hour))
    .ForMember(dest => dest.EventMinute, opt => opt.MapFrom(src => src.Date.Minute)));

Automapper docs: http://docs.automapper.org

Implement services layer

There is direct database context usage in controllers. It should be moved to services layer (which doesn't exist yet). I don't think we have to use full repository pattern here, because it is small project, just use EF context as repository by injecting it into services.

Add error handling

Add some logic to handle errors. For now (e.x. when db throw error) whole error is shown.
image

Default error page can look like:
image

Sad Santa:
sad_santa

Fix CircleCI build errors

Error message: No configuration was found in your project
Probably there is missing config.yml file on branch develop

Fix entity framework

After migrating classic .NET app there are few places in code where some fragments are commented. They need to be refactored to meet EF Core standards. We also need to handle migrations.

Add db to docker-compose

Adding database service in docker-compose and changing appsettings for docker image will help people running app on their machines.

Move answers to db

  1. Save test answers in db
  2. Remove hardcoded answers
  3. Create logic to get answer for each test

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.