-
Notifications
You must be signed in to change notification settings - Fork 4
Software Requirements Specification
For implementation and architecture details, see the Software Architecture document.
The purpose of the application is to provide a simple, fast and easy-to-use way for converting numbers to different formats, such as binary numbers to decimal numbers and vice versa. The intended target audience consists of university students majoring in computer science or other technical fields and anyone else interested in number conversion. The application offers a way to simply type the number and see the results immediately. All relevant functionality must be properly and thoroughly tested so the user can rely on the results being correct.
The primary objective is for the application to be useful. The secondary is for it to be educational.
Source code is published with an open source license, MIT. Source code is hosted on GitHub and will always be open to issues and pull requests from anyone wishing to contribute to the project. The contributing rules should remain simple and keep the barrier of entry for new contributors as low as possible.
Extensive documentation is essential.
The application is written in TypeScript using the React library. The application is deployed to GitHub Pages and can be accessed via any modern web browser. All calculation can be done inside the application and no user data is stored so there is no need for a separate backend service. The application is a pure frontend application only.
Continuous integration is implemented with GitHub Actions. The CI pipeline runs ESLint to enforce code style rules. The pipeline also runs unit tests. Code coverage is monitored with codecov.io. All new features should pass the tests and be up to the standards enforced by the linter rules. Test coverage can be temporarily allowed to decline as new functionality is written.
As a web application, the app can be accessed via any modern web browser. The user interface is built with Material UI. It should be simple and contain only relevant information with no distractions or unnecessary elements to keep the application informative and uncluttered. The application must before all be simple, fast and easy-to-use.
Simple means that there should be no irrelevant information cluttering the user interface. Fast means the code is optimized (by architectural decisions as well as optimization made by the TypeScript compiler). The results should be displayed without delay. Easy-to-use refers to how intuitive the application user interface is. Can the user know how to use the application without spending too much (or rather, any) time reading a manual.
The user interface is responsive to reach a wide audience using various devices. The application is available in different languages to serve those who do not speak English.
- Support for the following numeral systems:
- Base-2 (binary)
- Base-8 (octal)
- Base-10 (decimal)
- Base-16 (hexadecimal)
- Dark mode
- Information about numeral systems and their practical usage scenarios
- Support for fractions (Issue #69)
- Support for query params (Issue #60)
- Support for more systems:
- Base-3
- ...
- Base-36
- User interface available in different languages
- English
- Finnish
- Italian
- Korean
- Swedish (Issue #102)
- others
Do you have an idea for new features? Tell us about it!
Did you notice a typo or any outdated information? Please let us know!