CS107/AC207 Project
Project Overview
Goal
You will develop a software library for a client, the teaching staff. The development of this library will leverage modern software development practices covered in the course. By the end of the semester, the client should be able to easily install and run your package.
Topic
The project topic is spectral analysis, which consists of the analysis of data obtained from publicly available sources currently used by professional astronomers to perform state-of-the-art research. Moreover, spectral data appears in many fields of science and engineering, and you are likely to encounter it in your professional careers. Your final project is to write a Python library. Your library is not required to have every module implemented; that would simply be too much for a single semester. However, your library should meet the basic project expectations outlined in the Software Requirements Specification (SRS).
Project Milestones
The following weight table is used for individual milestones of the project. The individual milestones make up the final project grade listed under the Grading section in the syllabus. Additional milestones will be included in the near future. The due date for the final milestone is December 14th 2023, 09:59 PM. The due date for the final milestone is December 17th 2023, 09:59 PM.
Milestone Due Total Points Milestone 1 Thu, November 2nd, 09:59 PM 1 Milestone 2 Thu, November 9th, 09:59 PM 1 Milestone 3 Tue, November 14th, 09:59 PM 21 Milestone 4 Tue, November 28th, 09:59 PM 23 Milestone 5 Mon, December 11th, 09:59 PM 55 Milestone 6 (Final) Sun, December 17th, 09:59 PM 225 + 15X Total 326 + 15X
Groups
You will work in groups of 4-5 students. You are free to choose your project partners but groups sizes must consist of the number of students mentioned before. Some members of the group will be stronger than others. It is expected that you work together and help each other as needed. This is an opportunity for less experienced coders to improve their skills by working with more experienced coders. Every person must contribute.
Expectations
This project encompasses several mandatory requirements, detailed under basic expectations and within Annex A of the Contract. Furthermore, the project includes supplementary elements, specified under additional expectations and delineated in Annex B of the Contract.
Basic Expectations
- Python library that can be used for astronomical spectral analysis.
- The library must comply with the API described the Contract.
- The client should be able to easily install the library, run the tests, access the documentation, and use the library for their application.
- Documentation for every subsystem in the project must be provided.
- Link to the docs from the
README.md
in each folder. - The top level
README.md
should contain an overview, links to other docs, and an installation guide which will help us install and test your system. - The project must utilize a proper packaging system for distribution and installation of the library.
- The project must ship with a test suite. Documentation on how to run the tests is mandatory.
Additional Expectations
In addition to the basic requirements of the library, you must also extend your package with at least two additional modules.
- Cross-Matching
- Machine Learning
- Interactive Visualization
- Spectral Feature Extraction
You are more than welcome to pitch your own idea, which must be approved by the Teaching Staff.