The creators of this application include: Scott Geleas, Oleksandr Kulyk, Erica Fagioli, Marla Jane Caram, and Nicole Daruwalla.
- Description / Objective
- Business Need
- Links
- Screen Capture
- Key Features
- Tools
- Use
- References
- Questions
- License
Our team created Code<br> application to demonstrate our ability to design, build and deploy a responsive full-stack web application to Heroku. The application was created with React (JavaScript Library for building user interfaces) and the MVC paradigm. It includes GraphQL with a Node.js and Express.js server. A MongoDB with the Mongoose ODM was implemented for the database. Queries and mutations for created for retrieving, adding, updating, and deleting data. JSON Web Tokens (JWT) were used for authentication. The team collaborated via Zoom and Slack, and used Git for version control as well as Agile software development methodology.
Code<br> addresses the developer’s need to share, store, find reusable code snippets to reduce development time.
This screen capture depicts our application's homepage.
The key features of this application include:
- A responsive site with a visually appealing user interface
- A landing page with a view of recent code snippets
- A filter to enable users to view snippets by primary language (HTML, CSS, JavaScript, etc.)
- A secure and user-friendly login and sign up functionality
- A user dashboard that enables users to view, update or delete their code snippets
- A privacy setting to allow users to make their code snippets public or private
- Comment functionality to enable users to share their thoughts on fellow web developers' snippets
- Like and Dislike functionality to help grade snippet quality and usefulness
The tools used to build the Code<br> application include: HTML, CSS, Bootstrap, JavaScript, React, Node.js, Express.js, Highlight.js, GraphQL, MongoDB and Mongoose, Robo 3T, Bcrypt, JSON Web Tokens (JWT), Dotenv, Heroku, Github, Git Bash, Visual Studio Code, Slack and Zoom.
To edit this application, clone the repository. From the root folder run:
npm install
Add a .env file to the server folder with a MONGODB_URI and a JWT_SECRET:
MONGODB_URI='mongodb://localhost/DatabaseName'
JWT_SECRET='mysecretshhhhhhh'
Then run:
npm run seed
&&
npm run develop
Given the limited time we had to create this project, we created a Minimum Viable Product (MVP). The following enhancements are considerations for future development:
- Enable sharing of snippets via email and text
- Display hightest rated or most favorited code snippets first on the homepage
- Expand filter options (highest rated, by subject)
- Enable user to 'favorite' other users' code snippets
- Enable versioning so users can improve existing code snippets
The following referenced to the following documentation to create our application:
- https://javascript.info/
- https://reactjs.org/
- https://devcenter.heroku.com/articles/deploying-nodejs
- https://www.npmjs.com/
- https://graphql.org/
- https://docs.mongodb.com/guides/
- https://jwt.io/
If you have questions or need help with this application contact us on Github:
Copyright 2021 Scott Geleas, Oleksandr Kulyk, Nicole Daruwalla, Erica Fagioli, Marla Jane Caram
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.