Click here to Skip to main content
14,580,566 members

Best Article of April 2020

This competition has ended

Contest Entries and Requirements

  1. The contest period covers the the first day of the month 12AM US Eastern Standard Time and ends the final day of the month at 11:59:59 PM US Eastern Standard Time. All entries must be submitted during this period in order to qualify.
  2. Entries must be an article, or blog entry.
  3. Articles entries must follow the CodeProject submission guidelines.
  4. No cheating, lying, plagiarizing articles, chicanery, or kicking.
  5. No author can be nominated twice.
  6. In the event an article has multiple authors and/or contributors, the number of prizes issued is solely at the discretion of the prize issuer.
  7. In the event of a tie, the number of prizes issued is solely at the discretion of the prize issuer.
  8. Multiple votes from the same IP will be automatically disqualified.
  9. The judges’ decision is final and no correspondence will be entered into.
  10. Only those who live in jurisdictions in which this contest is legal may enter.
  11. Any breach of the rules and the prize will be awarded to the runner up.
  12. By entering the contest you agree to the rules, conditions of entry, and agree that your member alias and any submitted material can be used for promotional purposes by CodeProject.
  13. Entries shall be deemed to be submitted by the authorized account holder of the email address submitted at the time of entry unless clearly indicated otherwise. "Authorized account holder" is defined as the natural person who is assigned to an email address by an internet access provider, on-line service provider, or other organization (e.g. business, educational institution, etc.) that is responsible for assigning email addresses for the domain associated with the submitted email address.

Eligibility

This competition is open to software development professionals & enthusiasts who are of the age of majority in their jurisdiction of residence; however, residents of Quebec and of the following countries are ineligible to participate due to legal constraints: Cuba, Iran, Iraq, Libya, North Korea, Sudan, and Syria. Employees (or a member of their immediate family) of CodeProject or any of their affiliates, subsidiaries, advertising or promotional agencies are also ineligible to participate. Void where prohibited by law.

How to Enter

Entry is by the submission process described above. Please read the submission requirements before submitting your entry and ensure the article is tagged with at least one of the tags corresponding to that competition's category.

Lost, late, misdirected, or illegible entries will be disqualified. Any entry containing content that CodeProject deems objectionable for any reason will be disqualified. All decisions of CodeProject with respect to any aspect of the competition, including, without limitation, the eligibility of entries, are final and binding on all entrants in all matters as they relate to this competition. CodeProject reserves its right to modify the Rules.

CodeProject assumes no responsibility for lost, late, delayed, destroyed or misdirected mail, voice messages, email or any computer errors or malfunctions. No correspondence will be entered into with entrants.

CodeProject does not assume any responsibility for incorrect or inaccurate capture of entry information, technical malfunctions, human or technical error, lost, delayed or garbled data or transmissions, omission, interruption, deletion, defect or failures of any telephone or computer line or network, computer equipment, software or any combination thereof. Entry materials/data that have been tampered with or altered are void. If for any reason, in the opinion of CodeProject in its sole discretion, the competition is not capable of running as originally planned, or if the administration, security, fairness, integrity or the proper conduct of the competition is corrupted or adversely affected, including by reason of infection by computer virus, bugs, tampering, unauthorized intervention, fraud, technical failures or any other causes beyond its control, CodeProject reserves its right to cancel, terminate, modify, amend, extend or suspend the competition including cancelling any method of entry, and select a winner from previously received eligible entries. CodeProject reserves its right in its sole discretion to disqualify any individual it finds to be tampering with the entry process or the operation of the competition or to be acting in violation of the Rules or otherwise in a disruptive manner. CodeProject reserves its right to seek remedies and damages to the fullest extent of the law for any attempts to deliberately damage the competition web site or to undermine the legitimate operation of this competition. CodeProject shall not be held responsible for any errors or negligence that may arise or occur in connection with the competition including any damage to an entrant's computer equipment, system, software or any combination thereof, as a result of their participation in this competition or from downloading any material from the competition website where applicable.

Current Entries

Articles that match the contest criteria are automatically entered. The top 50 entries are shown.

8 Apr 2020
Daniel Miller
Describes a fast, lightweight implementation of the CQRS+ES pattern using C#
5 Apr 2020
Mircea Neacsu
An AWK interpreter converted to a C-callable library
16 Apr 2020
Dixin Yan
A one-stop tutorial of all mainstream technologies for JavaScript modules.
15 Apr 2020
Издислав Издиславов
This article will demo the usage of Blazor WebAssembly and how to create simple web application with it.
2 Apr 2020
JorgeLuisOrejel
Implementation of Fredkin gates using standard TTL ICs, and their testing with an Arduino Uno microcontroller board
14 Apr 2020
Member 4201813
Jump forward/backward procedures for XorShift RNG explained step by step
17 Apr 2020
Roland Roos ICT Architectures
Separation of deployment and feature releases: how to enable and disable features in applications (services) at configuration time
24 Apr 2020
Member 4201813
Jump forward/backward procedures for XorShift RNG explained step by step
15 Apr 2020
Marcelo Ricardo de Oliveira
In this article, we'll show you how to make your Angular app smaller, faster, and more responsive.
12 Apr 2020
Christ Kennedy
A simple way to morph square 2D into circular banners
24 Apr 2020
Gerd Wagner
The most important new language elements of JavaScript for basic programming
2 Apr 2020
Padanian
A panel switch replica, resembling electro-mechanical toggle of a switchboard box
26 Apr 2020
Omnia Hussain
A walk-through for creating a custom WPF button that contains both icon and text
18 Apr 2020
Saket Pawar
How to delete headers/certain strings in rows from your Excel file
10 Apr 2020
Pooyan Behroozfar
How to use an interface called IServiceInstaller that you can use to configure Dependency Injections and then automatically read it with a simple line of reflection code
9 Jul 2020U
Stephane Capo
Kigs framework C++ Windows project to retrieve and display what other channels are subscribed by subscribers of a given YouTube channel.
8 Apr 2020
Svetoslav Chekanov
Fast implementation of 2:1 image shrink (full image or part of it)
19 Apr 2020
Nilay M Joshi
MultiSelectCombobox control for WPF
20 Apr 2020
Serge Desmedt
An update article on what you can do with the flex based Bootstrap 4 Grid system and what makes it different from the Bootstrap 3 implementation
27 Apr 2020
Volodymyr Kopytin
The project explains MVVM design pattern implementation in JavaScript front-end application.
27 Apr 2020
Member 4206974
JavaScript script for creating pop-ups
30 Apr 2020
Leif Simon Goodwin
WPF tab header control using two button controls and a modified listbox with list items arranged horizontally
27 Apr 2020
Sacha Barber
Small demo app using React/Redux and hooks
26 Apr 2020
BADGROOVY
A quick article on how to receive an SMS using RingCentral when a Philips HUE light in your home is turned on.
24 Apr 2020
Han Bo Sun
Short tutorial on Javax mail library
5 Apr 2020
DiponRoy
Select data as DataTable object for a database using Entity Framework
28 Apr 2020
Ahmed Bouchefra
How to build a React application and manage its state using Redux
28 Apr 2020
Ahmed Bouchefra
Possible ways that you can use to connect or integrate Python with Node.js and Electron with simple examples
24 Apr 2020
Kevin Mack
Some areas to focus on for Cloud Security
1 Apr 2020
Vassili Kravtchenko-Berejnoi
A generic workaround for auto-generating multiple custom columns in a WPF DataGrid in case where the data class has multiple properties of the same type
28 Apr 2020
Ahmed Bouchefra
Solutions to problems you'll encounter when creating new virtual devices
26 Apr 2020
AjithKp560_
Java Implementation of Diffie-Hellman Key Exchange Algorithm
4 Apr 2020
Venkatesh Subbarao
How to copy tables with Stored procedure data from one database to another in AZURE SQL.
6 Apr 2020
Doctor Autonomy
A surprisingly easy way to avoid memory leaks with new/delete allocations in C++
7 Apr 2020
siliconvideo
A NumberBox class for number entry, display, range limits and keystroke validation including binary
9 Apr 2020
Peter Huber SG
A WPF Textbox which can validate international and national phone numbers depending on your needs, plus detailed explanation of the structure of phone numbers.
27 Apr 2020
Volodymyr Kopytin
Detailed explanation and examples of databind approach to a solution
27 Apr 2020
DRappJr
Allow picker to show selected item by a bound ID such as by key/value list choices
6 Apr 2020
James A. Brannan
Introduction AWS SQS Message Queues are a way to exchange messages between applications. Senders, send data objects to a queue and receivers, receive objects from a queue.
15 Apr 2020
Alexandros Pappas
This project describes how to use Entity Framework Core with update triggers and audit tables.
2 Apr 2020
Mircea Neacsu
How to handle UTF-8 in Windows INI files
19 Apr 2020
Roland Roos ICT Architectures
Using patterns like aspect-oriented programming in modern OO-languages in micro-services context
2 Apr 2020
Fredrik Rudberg
A Windows service that removes files older than a specific date from a configurable set of folders
6 Apr 2020
Rudolf Jan
Explains how to set up and use colours, fonts and dimensions for re-usability in WPF applications
10 Apr 2020
#realJSOP
A rewrite of a previous article with more liquid nitrogen and bacon
17 Apr 2020
Merna El Katatnee
How to dynamically render form controls that depend on each other's values using json template
23 Apr 2020
Chinmaya C
What is UnityContainer and the different ways of registering dependencies
15 Apr 2020
Tanvir Ahmad Arjel
How to dynamically register all services as a dependency to an ASP.NET Core Dependency Injection container
24 Apr 2020
mreinslc
Simple tricks that may help you get your Emulators with Google Play Store up and running and shared between Android Studio and Visual Studio 2019

Current Participants

Those with articles that match the contest criteria are automatically entered.

#realJSOP
Software Developer (Senior) Paddedwall Software
United States United States
I've been paid as a programmer since 1982 with experience in Pascal, and C++ (both self-taught), and began writing Windows programs in 1991 using Visual C++ and MFC. In the 2nd half of 2007, I started writing C# Windows Forms and ASP.Net applications, and have since done WPF, Silverlight, WCF, web services, and Windows services.

My weakest point is that my moments of clarity are too brief to hold a meaningful conversation that requires more than 30 seconds to complete. Thankfully, grunts of agreement are all that is required to conduct most discussions without committing to any particular belief system.
DiponRoy
Bangladesh Bangladesh
No Biography provided
Ahmed Bouchefra
Software Developer
Morocco Morocco
Ahmed is a web developer.
AjithKp560_
Systems Engineer Tata Consultancy Service Ltd.
India India
Name Ajith Kp. Currently working at Tata Consultancy Service Ltd. I completed MCA from School of Information Science and Techonolgy, Kannur University Campus, Mangattuparamba. I like programming as well as computer/network security analyzing. I'm concentrating programming in Android, PHP, Python, Ajax, JQuery, C# and JAVA.

Blog: http://www.terminalcoders.blogspot.in

I'm working as freelance PHP, Android, Python and Java developer.
Alexandros Pappas
Software Developer (Senior) Unisystems
Greece Greece
No Biography provided
BADGROOVY
Mexico Mexico
No Biography provided
Chinmaya C
PAREXEL International
India India
Life is short. So enjoy each and every moment of life.
And necessarily keep smiling. Smile | :)
Christ Kennedy
CEO unemployable
Canada Canada
Christ Kennedy grew up in the suburbs of Montreal and is a bilingual Quebecois with a bachelor’s degree in computer engineering from McGill University. He is currently living in Moncton, N.B. writing code while slow brewing his next novel.
Daniel Miller
Software Developer InSite
Canada Canada
I have been building software systems for many more years than I care to count, working for organizations that range from small non-profit associations in my local community to global Fortune 500 enterprises.

I specialize in the design and implementation of cloud-based business solutions. My work-related research interests include software design patterns, information architecture, and data visualization.
Dixin Yan
Software Developer (Senior)
United States United States
Microsoft Most Valuable Professional
https://weblogs.asp.net/dixin/
Doctor Autonomy
Software Developer (Senior)
Canada Canada
No Biography provided
DRappJr
Database Developer
United States United States
No Biography provided
Fredrik Rudberg
Architect Hire Quality Software
Thailand Thailand
I've been working with software development for most of my working life. I am currently leading a development team in Thailand, www.hirequalitysoftware.com . When I am not writing code, I enjoy spending time outdoors and travel around in Asia.
Gerd Wagner
Instructor / Trainer
Germany Germany
Researcher, developer, instructor and cat lover.

Co-Founder of web-engineering.info and the educational simulation website sim4edu.com.
Han Bo Sun
Team Leader The Judge Group
United States United States
No Biography provided
James A. Brannan
Software Developer (Senior) Brannan Technical Solutions LLC
United States United States
I have worked in IT for over twenty years and truly enjoy development. Architecture and writing is fun as is instructing others. My primary interests are Amazon Web Services, JEE/Spring Stack, SOA, and writing. I have a Masters of Science in Computer Science from Hood College in Frederick, Maryland.
Jeremy Likness
Program Manager Microsoft
United States United States
Note: articles posted here are independently written and do not represent endorsements nor reflect the views of my employer.

I am a Program Manager for .NET Data at Microsoft. I have been building enterprise software with a focus on line of business web applications for more than two decades. I'm the author of several (now historical) technical books including Designing Silverlight Business Applications and Programming the Windows Runtime by Example. I use the Silverlight book everyday! It props up my monitor to the correct ergonomic height. I have delivered hundreds of technical presentations in dozens of countries around the world and love mentoring other developers. I am co-host of the Microsoft Channel 9 "On .NET" show. In my free time, I maintain a 95% plant-based diet, exercise regularly, hike in the Cascades and thrash Beat Saber levels.

I was diagnosed with young onset Parkinson's Disease in February of 2020. I maintain a blog about my personal journey with the disease at https://strengthwithparkinsons.com/.

JorgeLuisOrejel
United States United States
No Biography provided
Kevin Mack
Software Developer (Senior)
United States United States
My name is Kevin Mack, I'm a software developer in the Harrisburg Area. I have been a software developer since 2005, and in that time have worked on a large variety of projects. Everything from small applications, to mobile and Enterprise solutions. I love technology and enjoy my work and am always looking to learn something new. In my spare time I love spending time with my family, and learning new ways to leverage technology to make people's lives better. If you ask me what I do, I'll probably tell you I can paid to solve problems all-day-every-day.

Check out my blog at https://kmack.azurewebsites.net/ and https://totalalm.azurewebsites.net/
Leif Simon Goodwin
United Kingdom United Kingdom
C#/WPF/C++ Windows developer
Member 4201813
Unknown
No Biography provided
Member 4206974
Software Developer Condor Informatique
Italy Italy
Computer literacy (software) : Languages: PHP, Javascript, SQL Autoit,Basic4Android; Frameworks: JOOMLA!
Teaching/Training skills on Office, WEB site development and programming languages.
Others : WEB site development.
UNDP Missions
feb – may 2003 Congo DR Bukavu: ground IT computer course
nov 2003 Burundi Bujumbura: Oracle Data Base course
feb 2005 Burundi Bujumbura: JAVA course
mar 2005 Mali Kati: MS Office course
oct 2006 Mali Kati: MS Office course
jun 2006 Burkina Faso Bobo Dioulasso: MS Office course
jun 2007 Burkina Faso Bobo Dioulasso: MS Office course
may 2007 Argentina Olavarria hospital: Internet application for access to medical records
apr 2008 Burkina Faso Ouagadougou: MS ACCESS and dynamic Internet applications
jun 2008 Niger Niamey: analysis of the computing needs of the Niamey hospital
may 2009 Burkina Faso Ouagadougou: MS ACCESS and dynamic Internet applications
oct 2010 Niger Niamey: analysis of the computing needs of the Niamey hospital (following)
Region Piedmont project Evaluation
mar 2006 Burkina Faso, Niger
mar 2007 Benin, Burkina Faso, Niger
sep 2008 Benin, Burkina Faso, Niger
Others
feb 2010 Burundi Kiremba hospital: MS Office course
feb 2011 Congo DR Kampene hospital: MS Office course
No Biography provided
Mircea Neacsu
Canada Canada
No Biography provided
mreinslc
United States United States
No Biography provided
Nilay M Joshi
Software Developer Credit-Suisse
India India
I'm a Software Developer having 10+ Yrs of experience on Microsoft technologies.
No Biography provided
Padanian
Italy Italy
No Biography provided
Peter Huber SG
Software Developer (Senior)
Singapore Singapore
Retired SW Developer from Switzerland living in Singapore

Interested in WPF projects.
Pooyan Behroozfar
Software Developer (Senior)
Iran (Islamic Republic of) Iran (Islamic Republic of)
No Biography provided
Roland Roos ICT Architectures
Architect Roos ICT Architectures
Netherlands Netherlands
Roland is an experienced, hands-on architect on modern (micro-)services orientation.
All modern OO-oriented platforms, C# DotNet, Java Spring Boot, Python and C++ have his interest. He is experienced in all those platforms.
Architectures, patterns, concepts and frameworks are more important than tooling and languages, after all. You should apply a tool, platform or language in a modern micro-service, because it fits best to the problem at hand. Not because you're most familiar with itSmile | :) .
Rudolf Jan
Retired
Netherlands Netherlands
Got an MS degree in Electrical Engineering a long time ago (in the time before Computer Science was invented as something you could study). I have been involved somehow in software development since I created my first Algol 60 program, using punched cards and an IBM360 machine. Now I develop C#/WPF desktop applications, partly for fun, partly to help other people.
Sacha Barber
Software Developer (Senior)
United Kingdom United Kingdom
I currently hold the following qualifications (amongst others, I also studied Music Technology and Electronics, for my sins)

- MSc (Passed with distinctions), in Information Technology for E-Commerce
- BSc Hons (1st class) in Computer Science & Artificial Intelligence

Both of these at Sussex University UK.

Award(s)

I am lucky enough to have won a few awards for Zany Crazy code articles over the years

  • Microsoft C# MVP 2016
  • Codeproject MVP 2016
  • Microsoft C# MVP 2015
  • Codeproject MVP 2015
  • Microsoft C# MVP 2014
  • Codeproject MVP 2014
  • Microsoft C# MVP 2013
  • Codeproject MVP 2013
  • Microsoft C# MVP 2012
  • Codeproject MVP 2012
  • Microsoft C# MVP 2011
  • Codeproject MVP 2011
  • Microsoft C# MVP 2010
  • Codeproject MVP 2010
  • Microsoft C# MVP 2009
  • Codeproject MVP 2009
  • Microsoft C# MVP 2008
  • Codeproject MVP 2008
  • And numerous codeproject awards which you can see over at my blog
Saket Pawar
Student
United States United States
I am a senior at the Gwinnett School of Mathematics, Science, and Technology. Coding is my passion
Serge Desmedt
Software Developer (Senior)
Belgium Belgium
No Biography provided
siliconvideo
Software Developer (Senior) Analog Devices Inc.
United States United States
No Biography provided
Stephane Capo
Chief Technology Officer NEXT-BIM
France France
CTO of NEXT-BIM, I also supervise and participate in the development of Kigs framework.
Svetoslav Chekanov
Technical Lead Brosix
Bulgaria Bulgaria
I am a software development engineer .

Programming Languages: C/C++, Java, Delphi, HTML, CGI, Servlets, EJB, Assembly, CNC G-language
RDBMS Microsoft SQL Server 7.0, MySQL, MS Access, ODBC, JDBC

Networking: TCP/IP, Winsock, HTTP, HTTPS, FTP, SMTP, POP3, TELNET, IMAP, SOCKS 4/5, RTSP, CGI, MS Internet Information Server

Projects I have worked on:
  • Brosix
  • Screen-Sharing product
  • Video chat application
  • Server software
  • Java Virtual Machine
  • Application Server + Internet Proxy Services
  • Instant Messenger - like MSN and Yahoo ones
  • Voicer - Freeware VoIP application
  • Web Server
  • SSH Proxy - SOCKS 4&5 Proxy that can relay TCP Connections through HTTPS Proxy
  • HTTP Proxy
  • SOCKS proxy
  • Battery Test Suite
  • MFC custom UI controls
  • Internet Address Book - Synchronizes local Outlook, Outlook Express, Netscape and Eudora address book with database on WEB server located in the Internet
  • Advertising Screen Saver - Screen Saver that sends e-mails and gain prizes for the computer owner
  • Proxy Send Mail - Send Mail service that can send e-mails through SOCKS 4, SOCKS 5 and HTTPS proxies
  • Proxy Hunter - Very fast, and also works as proxy checker
  • Java Disassembler
  • Java custom UI controls
  • CNC Gravuring System
  • Little DOS games - when I was schoolboy
  • More information about my current work you can find here:
    www.brosix.com

    Tanvir Ahmad Arjel
    Software Developer
    Bangladesh Bangladesh
    A Software Engineer, Passionate Programmer and Technical Writer!!
    Vassili Kravtchenko-Berejnoi
    Software Developer (Senior) Vassili Kravtchenko-Berejnoi Technical Computing
    Austria Austria
    No Biography provided
    Venkatesh Subbarao
    Architect
    India India
    No Biography provided
    Volodymyr Kopytin
    Software Developer RebelMouse
    Poland Poland
    No Biography provided
    No Biography provided

    Contest Entries and Requirements

    1. The contest period covers the the first day of the month 12AM US Eastern Standard Time and ends the final day of the month at 11:59:59 PM US Eastern Standard Time. All entries must be submitted during this period in order to qualify.
    2. Entries must be an article, or blog entry.
    3. Articles entries must follow the CodeProject submission guidelines.
    4. No cheating, lying, plagiarizing articles, chicanery, or kicking.
    5. No author can be nominated twice.
    6. In the event an article has multiple authors and/or contributors, the number of prizes issued is solely at the discretion of the prize issuer.
    7. In the event of a tie, the number of prizes issued is solely at the discretion of the prize issuer.
    8. Multiple votes from the same IP will be automatically disqualified.
    9. The judges’ decision is final and no correspondence will be entered into.
    10. Only those who live in jurisdictions in which this contest is legal may enter.
    11. Any breach of the rules and the prize will be awarded to the runner up.
    12. By entering the contest you agree to the rules, conditions of entry, and agree that your member alias and any submitted material can be used for promotional purposes by CodeProject.
    13. Entries shall be deemed to be submitted by the authorized account holder of the email address submitted at the time of entry unless clearly indicated otherwise. "Authorized account holder" is defined as the natural person who is assigned to an email address by an internet access provider, on-line service provider, or other organization (e.g. business, educational institution, etc.) that is responsible for assigning email addresses for the domain associated with the submitted email address.

    Eligibility

    This competition is open to software development professionals & enthusiasts who are of the age of majority in their jurisdiction of residence; however, residents of Quebec and of the following countries are ineligible to participate due to legal constraints: Cuba, Iran, Iraq, Libya, North Korea, Sudan, and Syria. Employees (or a member of their immediate family) of CodeProject or any of their affiliates, subsidiaries, advertising or promotional agencies are also ineligible to participate. Void where prohibited by law.

    How to Enter

    Entry is by the submission process described above. Please read the submission requirements before submitting your entry and ensure the article is tagged with at least one of the tags corresponding to that competition's category.

    Lost, late, misdirected, or illegible entries will be disqualified. Any entry containing content that CodeProject deems objectionable for any reason will be disqualified. All decisions of CodeProject with respect to any aspect of the competition, including, without limitation, the eligibility of entries, are final and binding on all entrants in all matters as they relate to this competition. CodeProject reserves its right to modify the Rules.

    CodeProject assumes no responsibility for lost, late, delayed, destroyed or misdirected mail, voice messages, email or any computer errors or malfunctions. No correspondence will be entered into with entrants.

    CodeProject does not assume any responsibility for incorrect or inaccurate capture of entry information, technical malfunctions, human or technical error, lost, delayed or garbled data or transmissions, omission, interruption, deletion, defect or failures of any telephone or computer line or network, computer equipment, software or any combination thereof. Entry materials/data that have been tampered with or altered are void. If for any reason, in the opinion of CodeProject in its sole discretion, the competition is not capable of running as originally planned, or if the administration, security, fairness, integrity or the proper conduct of the competition is corrupted or adversely affected, including by reason of infection by computer virus, bugs, tampering, unauthorized intervention, fraud, technical failures or any other causes beyond its control, CodeProject reserves its right to cancel, terminate, modify, amend, extend or suspend the competition including cancelling any method of entry, and select a winner from previously received eligible entries. CodeProject reserves its right in its sole discretion to disqualify any individual it finds to be tampering with the entry process or the operation of the competition or to be acting in violation of the Rules or otherwise in a disruptive manner. CodeProject reserves its right to seek remedies and damages to the fullest extent of the law for any attempts to deliberately damage the competition web site or to undermine the legitimate operation of this competition. CodeProject shall not be held responsible for any errors or negligence that may arise or occur in connection with the competition including any damage to an entrant's computer equipment, system, software or any combination thereof, as a result of their participation in this competition or from downloading any material from the competition website where applicable.

    You must sign in to participate in this contest.
    This contest has ended.
    1 Apr - 30 Apr 2020