Welcome to the first Christmas Coding Challenge hosted by CrazyCo! This year, we’re challenging you to create a file server with a key part being your backend, exciting features, functionality, and an emphasis on code quality.
The 1st prize includes a 1-year subscription to both Boot.dev and 120 Nodes for Netdata.cloud.
This project would not be possible without some sponsors and people that promote the event:
Who? | What? | Their Link(s) |
---|---|---|
CrazyCo (us) |
Concept, planning, management, funding | Discord, Website |
Boot.dev | Promoting, Funding | Discord, Website |
SyntheticPlayground | Promoting, funding | Discord |
Netdata | Promoting, funding | Discord, Website |
@johnhammond | Promoting | Discord, Youtube |
@ericparker | Promoting | Discord, Youtube |
@xmasterx | Promoting | Discord, Github |
Your task is to build a file server with as many of the following characteristics as you can manage:
- File management: The server should support basic file storage and retrieval.
- Authentication: Provide options for protected and unprotected files
- Encryption: Include functionality to encrypt and decrypt files during storage or transfer
- Access: The file server should be accessible via a web application that runs on a Linux server.
(Latest stable version of Debian, Fedora, or Ubuntu. Please specify in your submission.)
-
Teams:
- This challenge is designed for single devs. Duos will be allowed but will be rated accordingly to keep it fair. If we find more than two contributors towards code (if they merely fix your readme typos its whatever), then we will disqualify you.
-
Project Scale:
- The challenge is designed to exhaust full working days where possible. Focus on a small-to-medium scope for the project.
-
Code Standards:
- The project must be your original work.
- Do NOT use excessive AI. It's okay if you let it write some small helper function; we would too. But keep it minimal; we will run some checks.
- Use Python, JS, Rust, or Go, and try to keep dependencies minimal.
- Ensure your code is well-documented and follows best practices.
-
Supported Protocols:
- Bonus points for implementing WebDAV or other file transfer protocols.
- Compatibility with Windows tools is encouraged but not mandatory.
-
Submission:
- Fork this repository and submit your work as a pull request. We wont judge any work submitted before the deadline. Dont worry, you can keep pushing fixes until the last second.
- Include a detailed README in your project folder explaining your approach, setup instructions, and any assumptions made.
- We will contact the winner(s) either through github PR messages, or on Discord, whichever happens to work out for you.
-
Deadline:
- All submissions must be made by
Dec. 23rd 23:59:59 PM UTC
.
- All submissions must be made by
There are, of course, ways to get disqualified; let's get through them.
- Working as a >2 person team. Once again, this is designed for individuals or duos at best; else it would be too simple.
- Stealing/skidding code, or any other wording thereof. We want to see your code, not someone else's.
- Submitting after the deadline. Even a second, if the date says 24th (UTC), you're out. Be on time.
- Trying to find loopholes in the rules.
More will be added if needed.
Submissions will be evaluated on the following, in this exact order:
Criteria | Description |
---|---|
Functionality | Does the server meet the required functionality? Are all features working? |
Performance | How well does the server perform under typical use cases? |
Dependancies | How many godforsaken libraries do we have to be concerned about having vulnerabilities we can't patch? |
Code Quality | Is the code clean, maintainable, and well-documented? |
Innovation | Bonus points for creativity and implementing optional features like WebDAV. |
Design | Is the architecture thoughtful? Is it scalable and efficient? |
By the way, we know that 18 days for all of this is not a lot, especially during the holiday season, etc. This is on purpose! We want to see your ability to prioritize and see how you handle time constraints. We are the unreasonable manager you have to satisfy, but don't worry; we won't deduct points for missing things. You start at 0, and the only way is up!
- @claracrazy
- @aurorasmiles
- @jmbit
1-Year Subscription to Boot.dev (A comprehensive platform for backend development courses, valued at over $300)
The ultimate resource for mastering backend development and expanding your coding skills!1-Year Subscription to netdata.cloud (120 Nodes) (Your #1 Server Monitoring Suite)
Feel the pulse of your infrastructure, with high-resolution metrics, journal logs and real-time visualizations.
1-Year Subscription for a Hetzner Server (up to CPX31)
Your next project(s) will be running on a stable, highly available server on a trusted network for an entire year!1-Year Subscription to netdata.cloud (90 Nodes) (Your #1 Server Monitoring Suite)
Feel the pulse of your infrastructure, with high-resolution metrics, journal logs and real-time visualizations.1-Month Subscription to Boot.dev (A comprehensive platform for backend development courses)
The ultimate resource for mastering backend development and expanding your coding skills!
1-Year Subscription of Github Pro
Boost your workflow with premium developer tools and integrations directly on GitHub.1-Year Subscription to netdata.cloud (45 Nodes) (Your #1 Server Monitoring Suite)
Feel the pulse of your infrastructure, with high-resolution metrics, journal logs and real-time visualizations.1-Month Subscription to Boot.dev (A comprehensive platform for backend development courses)
The ultimate resource for mastering backend development and expanding your coding skills!
Honorable Mentions (2):
For people that have created something unique that peaked out interest, yet did not make the podium.
1-Year Subscription to netdata.cloud (Your #1 Server Monitoring Suite)
(30 Nodes & 15 nodes)
Feel the pulse of your infrastructure, with high-resolution metrics, journal logs and real-time visualizations.
- Fork this repo to get started.
- Set up your development environment on Linux.
- Code up the required file server with features outlined in the Challenge Overview.
- Test your implementation thoroughly.
- Submit your solution as a pull request.
All valid PRs will be accepted into their own branch once the contest concludes
Want to go the extra mile? Consider implementing some of these optional features:
- Cross-platform compatibility: Ensure smooth operation on both Linux and Windows systems.
- Protocol support: Add support for protocols like WebDAV or SFTP.
- Advanced authentication: Implement OAuth2 or token-based authentication mechanisms.
- File preview: Add the ability to preview files (like PDFs or images) through the web interface.
The holidays are a time for creativity, growth, and giving back. What better way to celebrate than by challenging ourselves to build something impactful? This contest is designed to inspire developers to sharpen their backend skills, think critically, and craft solutions that balance functionality and elegance. Whether you’re a seasoned coder or just starting out, this is your chance to showcase your talents, learn from others, and have fun along the way. Plus, who doesn’t love a little friendly competition during the festive season? 🎄✨
Feel free to use the discussion tab on this repo or reach out to us on discord. We’re excited to see your creative solutions!
Good luck, and may the best coder win! 🎄✨