This should be a reference on how my work is usually done, always trying to follow the best practices on software development. Please feel free to help me with some sugestions of improvement!
In this document, I suggest an order or steps to follow when creating a new Application, coming from the very beginning, when an idea flourishes, until the final delivery where a system is up and running:
Tools used for this step: Brain
Tools used for this step: Libreoffice, Text Editor
3) From the ideation report, UX design takes part and a UI/UX design report is generated, including the five layers of UX design, which are:
- Product Objectives;
- Specification;
- Structure;
- Navigation Design/Wireframing;
- Interface/Prototyping;
Tools used for this step: Libreofice (Objectives, Specification, Structure), Indesign + Adobe Suite + Axure + HTML + CSS + Bootstrap(Wireframing, Prototyping);
4) Using the UI/UX design report as supporting documentation, the REST API is designed, following this sequence:
- Entities modeling/UML class diagram creation;
- Operations under Entities modeling/UML use cases creation;
- Database tables creation, based on the diagrams provided before;
- REST API implementation, based on the diagrams created. This step is achieved using a REST API generator tool, like Strongloop;
- REST API documentation, using a REST API specification format, like Swagger, for example;
Tools used for this step: UML documenting tools, MongoDB, Strongloop, Atom, VSCODE, NodeJs;
5) Front-end implementation, based on the prototype created on step 3, and integration with the REST API end points;
Tools used for this step: Atom, VSCODE, HTML, CSS, Bootstrap, AngularJS, Ionic Framework, Cordova and Yeoman;
Tools used for this step: Heroku PaaS, IBM Bluemix, etc;
Tools used for this step: Atom, VSCODE, terminal, github.com.
To get a good quality during the development process, I try to adhere to best practices used in software development such as:
- It helps to identify each app uniquely;
- It helps to identify the authors properly;
- It helps to identify types of licenses properly;
- Avoid uploading unnecessary files to the github, helping users to download smaller projects
- Allows the users to get easy instructions on how to get started to the project
- To maintain styling uniformity in the code, helping other developers to easily understand the source code
- To respect automaticaly the ESLint rules according the codestyling adopted
- Allowing the app to be checked before push the development branch to the github repository
- Checks the code using ESLint and npm scripts before commit/pushing files using git, and only permits clean code to be commited/pushed
This project is licensed under the MIT License - see the LICENSE.md file for details