Version History and Change Log - 0.4.0
Also known as ZeroPointFourPointZero in places where numbers are not allowed or string is preferable.
In this version, the focus is on some basic minor improvements. The last two years have not been easy for me, personally and professionally. The pandemic has taken its toll on me. I have tried to relax more, and work a little less.
So, going forward, version updates will be minor improvements so that i dont burn myself out trying to do too much.
Further, the primary goal of this project was to be a basics only demo for my students. It is already serving that purpose. So, I am happy with its current state.
Project Overall
- Created a brand new folder called ‘RandomStuffForStudents’ where I will be putting, linking and documented the many ways students past, present and future, can use this project as their practice project to showcase their skills.
- updated readme signatures to my latest readme signature which provides clarity on how to get in touch with me.
- Previously project was testing only on Visual Studio on Windows. Now, it is tested to run on VSCode on Mac and Windows, Visual Studio on Windows and Mac.
- Trying to do some visual stuff from this version. There is now a brand new logo when you try to login in the React JS App. It replaces the default logo from Auth0.
- I have improved the documentation appearance of this version history file.
API Server
- Upgraded the xUnit testing project to dot net 5.0.
- Upgraded the main API server project also to dot net 5.0
- Performed a deployment. The server is now available to view as a live version. Neat.
React JS App
- Performed a deployment. The react js app is now available to view as a live version. Neat.
- Added a brand new api_config.json file. Earlier, the baseURL had to be updated all over the project. Now, it can be updated in one single file. I should have done this from the beginning. Could have saved me a ton of time.
- There is now a brand new logo when you try to login in the React JS App. It replaces the default logo from Auth0.
- Also, I changed the background from the dull black to purple. It looks slightly better I think.
Known Issues
- some tests are failing.
- error with this - api/Moderator/UpdateExistingQuote, especially from the React JS app. It might be an app, input validation issue.
Version History and Change Log - 0.3.0
Also known as ZeroPointThreePointZero in places where numbers are not allowed or string is preferable.
This version focuses on API server and related tasks. There are a lot of breaking changes with API endpoints, response JSON types and so on. That means, react app, in its current state will not work fully as it did with 0.2.0. React JS App improvements are planned for upcoming versions.
Changes in this version.
API Server
- The entire project has been upgraded to meet SOLID principles.
- Every class has been upgraded to be based on interfaces or base classes or both.
- Unit Testing code has been streamlined and updated to work with the interfaces.
- Lot of junk code, which was used in the earlier stages of development has also been deleted.
- Majority of app configuration has been moved to appsettings.json
- API endpoint /api/UserNotLoggedIn/PutThemOn has been removed. This was a stop gap for adding new quotes from UI. So, it has been removed.
- React JS App can no longer show all the quotes. This is due to a breaking change in the API response to /api/Moderator/GetAllQuotes
- Documentation has been simplified and extra content removed from readme index.
- new endpoint. /api/Moderator/AddNewQuote. allows adding of new quote. (Only available to moderator and above roles)
- new endpoint. /api/Moderator/AddNewQuoteAutoGenerated. allows adding of new quote, generated automatically by the API server itself without any user involvement. (Only available to moderator and above roles). Further, a related endpoint. /api/Moderator/AddAutoGeneratedQuotePlural is also available which does the same thing but can generated 10, 100, 1000 or even 10,000 and no limit really, number of quotes randomly generated and added to the system.
- new endpoint. /api/Moderator/UpdateExistingQuote. allows updating existing quote. (Only available to moderator and above roles)
- new endpoint. /api/Moderator/GetQuoteAlongWithItsLifeStory. allows getting the full transaction history of an existing quote. (Only available to moderator and above roles)
- /api/Moderator/GetAllQuotes will now return only the first 100 quotes. It no longer returns all the quotes which is a good thing because, the system is currently being tested to hold thousands of quotes. Dont wish to return all that.
- the way version changes are documentated is simplified. I just list out things.
- JMeter testing is now part of the API development. JMeter file ZeroPointThreePointZero.jmx is included in the documentation folder for running the tests locally. For example, /api/Moderator/AddAutoGeneratedQuotePlural, 100 users, 10 loops with AddAutoGeneratedQuotePlural set to 100 quotes per call, runs just fine. It takes about 3 hour, but the app does not crash. Due to SQLite limitations though, it only adds about 60 K to 120 K rows.
React JS App
- App has been upgraded to use the latest version of React JS available, bringing it up to React 17.X.
- App has been upgraded to use TypeScript, enforcing type usage and related TypeScript benefits throughout the app.
- Alert was being used directly from reactstrap. Now, it has been abstracted away into a function component, allowing for reusability across the app.
- Once logged in, Alert pop up on landing page will no longer show up.
- Landing Page, Random Quote display, has been upgraded to use types with typescript.
- Landing Page, Random Quote display, has been upgraded to work with the expert recommended 3 layer abstraction network calling component. Look at any API network call in the project for more details.
- Landing Page, Random Quote display has been completely rebuilt from the ground up.
- Profile page after logging in, no longer shows raw json string.
- Profile page also has been upgraded to use types with typescript.
- About page no longer shows raw string. In fact, it shows everything in a nice component including lists.
- About page also has been upgraded to use types with typescript.
- Claims are no longer show in the my quotes page. dont think it has any use for anybody except on the back end api side of things.
- The old see all quotes option under my quotes has been removed entirely. it simply was not in a good shape.
- role display, which was happening on /my-quotes has been entire replaced by the new and improved 3 layer network abstraction component.
- display a list of quotes, is back and built with improved FixedSizeList component.
- Every endpoint is now available in the React JS app.
- /api/Admin/Hi, yes, Available.
- /api/Moderator/Hi, yes, Available.
- /api/Moderator/GetAllQuotes, yes, Available.
- /api/Moderator/AddNewQuote, yes, Available.
- /api/Moderator/AddAutoGeneratedQuotePlurali, yes, Available.
- /api/Moderator/UpdateExistingQuote yes, Available.
- /api/Moderator/GetQuoteAlongWithItsLifeStory, yes, Available.
- /api/ProjectDetails/Hi, yes, Available.
- /api/User/Hi, yes, Available.
- /api/UserNotLoggedIn/GetHoldOfthem, yes, Available.
- Focus of 0.3.0 React JS app is to demonstrate that alls APIs are usable. However, the API responses are currently raw JSON. This is on purpose.
Version History and Change Log - 0.2.0
Also known as ZeroPointTwoPointZero in places where numbers are not allowed or string is preferable.
The initial version (lets call it 0.1.X) that was already deployed had essential things only. A foundational structure that did what it was supposed to do, put the foundation.
This update is a major structural update for the entire project.
Project Wide
- Documentation - I always maintain extensive internal documention that is private for all my development projects. On a public repo update, I go ahead and include a readme with all neccessary details. This update to this repo adds a dedicated documentation folder.
- Versioning - Every commit and branch will include a dedicated versioning documentation. Apps and Api Server will utilize consistent version number.
- Authentication - API Server and the Apps now employ authentication using Auth0
- Authorization - API Server and the Apps now employ authorization by way of roles.
- GitHub Branches for versions - Version based branches on repository. For every major version upgrade, I plan to maintain a specific branch. It would make it easy to roll back in case of failures, and also provide insight into development of project over time.
API Server
- xUnitTesting - Unit Testing via xUnit is now included in the API Server Project.
- Test Driven Development is now being followed for API Server development. That means, Dependency Injection coupled with industry standard interface usage.
- SQL Server to SQLite - Moved from an online SQL Server to a SQLite database. This makes the project more portable removing the requirement of having to configure a SQL server. (more details at “SQLite shift in 0.2.X” in Database.md)
- Added /api/Admin/Hi
- Added /api/Moderator/Hi
- Added /api/Moderator/GetAllQuotes
- Added /api/TheOthers/claims
- Added /api/User/Hi
- Added /api/User/GetASpecificQuote
- API EndPoint Re-organized - I have re-organized the APIs internally, so they fall into specific categories, making it easier to use.
- /api/RandomQuotes/GetHoldOfthem moved to /api/UserNotLoggedIn/GetHoldOfthem
- /api/RandomQuotes/PutThemOn moved to /api/UserNotLoggedIn/PutThemOn
- /api/RandomStuffGeneratorAPIServerDetails/Hi moved to /api/ProjectDetails/Hi
React JS App
- App has been rebuilt from the ground up. Previous version app was a placeholder.
- Implements all endpoints introduced/upgraded in this version of the API Server
- Except this endpoint - /api/UserNotLoggedIn/PutThemOn
- Removed the theme dependency. Uses react strap bootstrap components, avoiding any possible licensing issues. I am not too worried about license but its good to not become married to the theme that was used in 0.1.X
Version History and Change Log - 0.1.0
Also known as ZeroPointOnePointZero in places where numbers are not allowed or string is preferable.
Project begins.
Project Wide
- Project has begun. Have put in a basic API Server and React JS App in place.
- Setup with continuous deployment with Azure DevOps
- API Server and React JS App deployed with Azure Web App
API Server
- Added /api/RandomQuotes/GetHoldOfthem
- Added /api/RandomQuotes/PutThemOn
- Added /api/RandomStuffGeneratorAPIServerDetails/Hi
Hire Me
I work as a full time freelance software developer and coding tutor. Hire me at UpWork or Fiverr.
important note
This code is provided as is without any warranties. It’s primarily meant for my own personal use, and to make it easy for me share code with my students. Feel free to use this code as it pleases you.
I can be reached through my website - Jay’s Developer Profile