a challenge to implement new features into an existing, open-source codebase
This was our first project (team of 3) in mod4 at Turing School of Software and Design. The challenge was to familiarize ourselves with a pre-existing codebase and implement a new features into the web app. The backend of the app is built with Ruby on Rails
and the frontend is built with Preact
. For our team, this was the first time we had explored a web app that included code for the FE and BE. We had to work together leveraging our specialized skills pertaining to either Ruby/Rails or JavaScript to create the final product. Each piece of additional functionality is thoroughly tested on the BE using RSpec
/Capybara
and the FE using Jest
/Enzyme
.
I don’t have time and energy to read these articles every day, but I’d like to catch up with the best recent content.
Thankfully, I have you. And you love cultivating content. You login to the app and create a new “collection” with a name like “Best JS of February”. Now when you are reading articles in the app there is a [+] button that, when clicked, gives you the option to add that article to a collection.
The collection has a publicly-sharable URL, so that you can tweet it out, I can click the link, and see a listing page of all the articles in the collection.
Our team was able to successfully complete all functionality required for our specific track. Below are details about each piece that functionality.
-
A drop-down menu was created for each article for a logged-in user's news feed. This menu contains a list of each collection that user has created.
-
If a user has not yet created any collections, a "Default Collection" if created upon clicking the
SAVE
button. -
When a user clicks the
SAVE
button on an article, that article is saved to the currently selected collection in the drop-down menu of that article. -
If a user clicks their avatar icon in the top right of the screen, a drop-down menu appears that includes a "Collections" button we created.
-
Upon selecting the "Collections" button, a user is redirected to a new page displaying all of the collections that user has created, as well as a form to create a new collection. If that user is not currently logged in, they will see a message directing them to login in order to view collections.
-
From the Collections view, a user can click on a specific collection they have created to be redirected to a new page displaying links to all the articles within that collection.
-
The URL for this page is unique to each collection. This allows a user to share this URL with another user, enabling them to share their collection containing a list of articles associated with it.
-
The listed articles within a collection are displayed as links. When any of these links are clicked, the user will be redirected to the full page of that article.
click here for installation documentation
Zachary Nemeroff https://github.com/ZaneMeroff
Harrison Levin https://github.com/hale4029
Tyla Devon https://github.com/tyladevon
Welcome to the dev.to codebase. We are so excited to have you. With your help, we can build out DEV to be more stable and better serve our community.
dev.to (or just DEV) is a platform where software developers write articles, take part in discussions, and build their professional profiles. We value supportive and constructive dialogue in the pursuit of great code and career growth for all members. The ecosystem spans from beginner to advanced developers, and all are welcome to find their place within our community. ❤️
- What is dev.to?
- Table of Contents
- Contributing
- Getting Started
- Developer Documentation
- Core team
- Vulnerability disclosure
- License
We encourage you to contribute to dev.to! Please check out the Contributing to dev.to guide for guidelines about how to proceed.
This section provides a high-level quick start guide. If you're looking for the installation guide, you'll want to refer to our complete Developer Documentation.
We run on a Rails backend, and we are currently transitioning to a Preact-first frontend.
A more complete overview of our stack is available in our docs.
- Ruby: we recommend using rbenv to install the Ruby version listed on the badge.
- Yarn 1.x: please refer to their installation guide.
- PostgreSQL 9.4 or higher.
- ImageMagick: please refer to ImageMagick's installation instructions.
- Redis 4 or higher.
- Elasticsearch 7 or higher.
View Full Installation Documentation.
Check out our dedicated docs page for more technical documentation.
- @benhalpern
- @jessleenyc
- @peterkimfrank
- @maestromac
- @zhao-andy
- @lightalloy
- @rhymes
- @jacobherrington
- @mstruve
- @atsmith813
- @citizen428
- @nickytonline
- @joshpuetz
- @vaidehijoshi
- @juliannatetreault
- @ridhwana
- @fdoxyz
We welcome security research on DEV under the terms of our vulnerability disclosure policy.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Please see the LICENSE file in our repository for the full text.
Like many open source projects, we require that contributors provide us with a Contributor License Agreement (CLA). By submitting code to the DEV project, you are granting us a right to use that code under the terms of the CLA.
Our version of the CLA was adapted from the Microsoft Contributor License Agreement, which they generously made available to the public domain under Creative Commons CC0 1.0 Universal.
Any questions, please refer to our license FAQ doc or email yo@dev.to.