Prospectus - nford18/spherical-easel-w24 GitHub Wiki
Team Description
Summary of Technical Strengths
Nick Ford: Nick Ford is a double major in Physics and Computer Science, pursuing a career in software engineering after graduation. He worked in a Front-End development position at Standard Process where he tested, bugfixed, and added features to an in-development website. He holds proficiency in Java, Python, Javascript, and C programming languages. His technical expertise is mainly with mathematical, data interpreting programs. He also has developed small desktop and web applications, primarily using Java, Python, and Javascript. He has encountered the spherical geometry central to this project in several of his physics classes.
Travis Johnson: Travis is a Computer Science major that could see his career go in any direction right now. He has had an internship at Perrigo doing MES Recipe Authoring, and that experience was very valuable to him. Travis is a very creative and intrinsically motivated person that strives to do great things in his future by working hard right now. He is technically proficient using Python, Java, C, and C#. He has experience with many other languages and would love to improve in those as well. Finally, Travis hopes to gain invaluable insight from this project and hopefully build a strong professional relationship with the sponsors and fellow students involved.
Caleb Roe: Caleb is a Computer Science major, pursuing a career in full-stack development after graduation. He has led in several leadership positions at Barcodes Inc., where he spearheaded IT projects and managed infrastructure across various locations. He holds proficiency with Java, Python, and C/C++ programming languages. His technical expertise is primarily centered around full-stack technologies, with a strong emphasis on front-end web development using Vue, React, JavaScript/TypeScript, and HTML/CSS. He also has developed projects with a back-end environment, particularly with Firebase and SQL. Finally, he has experience with mobile application development in IOS and Android with Swift and Kotlin respectively.
Anticipation of Growth Areas
We expect to expand our expertise in several key technology areas throughout this project.
Nick Ford: Nick does not have experience with Firebase, which the first assigned task uses. However, he is enrolled in the mobile app development course which teaches Firebase as part of the Android portion. He has also not worked with the Vue model before this project, which will likely cause some overhead. Nick also looks forward to improving his web app UI design skills. This project has been worked on by several other capstone teams and, as such, many coding styles and habits have influenced the codebase. Nick hopes to use this to improve his skills in understanding and interpreting other's work and to easier mesh his own into projects.
Travis Johnson: Travis is eager to contribute to the project, leveraging his existing Javascript skills and aiming to enhance them further. While facing unfamiliar aspects within the project, particularly with Firebase, he is proactively addressing the knowledge gap. Travis is currently taking a quick Youtube course on Firebase and is enrolled in an App Development course with Dr. Dulimarta, which covers Firebase-related topics. Despite encountering new ideas and concepts beyond Firebase and Javascript, Travis is motivated to explore and learn, showcasing his commitment to project success.
Caleb Roe: Caleb does not have any experience with heuristic analysis or conducting testing in the Vue framework that this project will entail. He also has limited knowledge of Spherical Geometry and the mathematics evolved with the system already in place at this project's current state. Finally, he has limited experience with Firebase as a collection database. Although he already has experience with the Vue framework, there is a lot he will need to research with his current limitations to succeed in completing the project. This project then as a whole will be an exciting way for him to gain more insight into these different technical/developmental processes and applications.
Project Description
Background
Spherical Easel is a cutting-edge educational tool, designed to revolutionize the way students and researchers explore spherical geometry. This interactive application delves into the unique and often counterintuitive properties of geometry on the sphere, such as polygons with only two straight sides and non-intersecting circles with shared centers. The website will provide an immersive platform that will not only simplify the complexities of spherical geometry but also enrich the learning experience, making it accessible and engaging for students at various educational levels. While the website is still in development, our focus for this capstone will be to test and enrich the website with more features students and teachers can enjoy and share.
Description of Intended Features/Backlog
We are planning a robust feature set that includes:
-
Heuristic evaluation using these steps. Individuals will first create their own list and then the lists will be merged into one spreadsheet.
-
Bring current tests into Vue3 compliance and create new tests for features (aiming to get at least 30% test coverage).
-
Update the file handling structure. Implementing beyond a current level one folder hierarchy
-
Redesign Firestore collections (back-end) for storing public/private constructions to allow users to organize their constructions into groups/folders in the construction list panel (front-end).
-
Redesign the constructions UI by replacing the list with a tree-like structure
-
Make the shortcut slots customizable.
-
Add a new text tool in the tools panel (in the Basic tool section).
-
create a way to export a construction in various formats.
-
create a tool for dynamically styling objects.
Anticipated Platform / Tooling
The Spherical Easel application will leverage a range of technologies and tools to ensure robust development and seamless user interaction. Below is an overview of the anticipated platforms and tooling:
-
Vue.js: As the primary framework, Vue.js will be employed for building the user interface. Its integration with TypeScript offers enhanced type-checking and scalability for the application.
-
Cesium.js: For spherical geometry mapping and visualization, the Vue-Cesium library will be integrated. This will provide advanced mapping and measurement features essential for exploring spherical geometries.
-
TypeScript: As the main programming language, TypeScript will be used for its strong typing and object-oriented features, which are ideal for managing the complex codebase of the application.
-
Firebase: Google Firebase will be utilized for backend services, including real-time database management, user authentication, and hosting. This will facilitate efficient data handling and user account management.
-
Vercel: Automatic deployment of the application will be managed through Vercel, ensuring continuous integration and deployment from the development branch.
-
LaTeX: For the text tool, LaTeX code support will be integrated to allow users to create complex mathematical text objects within the application.
-
Testing Frameworks: Transitioning to Vue 3 will involve updating existing tests. Testing frameworks like Jest or Cypress will be used to achieve the target of at least 30% test coverage.
-
Node.js: Backend scripting will be developed using Node.js, offering a scalable and efficient environment for server-side logic.
-
Express.js: Potentially used in conjunction with Node.js, Express.js could be employed for building API routing and application structuring.
-
Git and GitHub: Version control and source code management will be handled using Git, with GitHub as the platform for code hosting and collaborative development.
-
Slack: For team communication and project updates, a dedicated Slack channel will be utilized, ensuring streamlined and efficient communication among team members and clients.
-
Collaboration and Project Management Tools: JIRA will be used for tracking progress, managing tasks, and coordinating the development workflow.
This suite of platforms and tools is selected to optimize the development process, enhance application functionality, and facilitate effective collaboration among team members.
Relevant Ethical Principles
1.01. Accept full responsibility for their own work.
3.07. Strive to fully understand the specifications for software on which they work.
3.10. Ensure adequate testing, debugging, and review of software and related documents on which they work.
7.03. Credit fully the work of others and refrain from taking undue credit.
7.04. Review the work of others in an objective, candid, and properly-documented way.
8.01. Further their knowledge of developments in the analysis, specification, design, development, maintenance and testing of software and related documents, together with the management of the development process.
8.02. Improve their ability to create safe, reliable, and useful quality software at reasonable cost and within a reasonable time.
8.03. Improve their ability to produce accurate, informative, and well-written documentation.