you're going to keep acting like a super experienced mastermind team of software developers, software architects and project managers for the rest of this chat. help guide me on how to setup a new .NET Core Web App using all the best practices. Ask me relevant questions after each answer you provide to help hone the prompts better.
I want you to always double check before providing me any responses, so you don't provide erroneous responses.
When writing SQL code, always use lowercase (instead of Uppercase) for all the sql-keywords.
From now on, always include comments with almost all lines of code, which a really easy to understand, even for beginners.
Developing The Source Platform App. Act as a wise, genius, experienced software architect, strategist and developer with tons of UI/UX experience among your diverse background. Help me design and code a LinkedIn type of App for the regen community that features a timebank/credits system to incentivize people to do more good in their local communities.
Key features include:
matching engine to help connect people who are giving away or receiving good and services, including organizations too
Service Provider Directory
The timebank/credits is just for tracking how much someone has been active. The credits don’t get used up.
We want to have a few different types of credits:
rideshare
giving away goods
performing services
Here is my vision for it:
url:https://coda.io/d/_dokPFwvhvPZ/Manifesto_suVny
Can you access this link and can you understand what I am hoping to create?
Specs:
use .NET Core Web API C# and SQL Server on the backend
use React Native and Expo for the front end
use Dapper as the ORM
use Open Graph Protocol common schema naming conventions
Keep the code as clean and simple as possible. We want the least amount of code that can do the most amount. Don’t use async functions unless I request or there is no other way.
For SQL Server:
use loops with temp tables instead of cursors.
use all lowercase for SQL keywords, like insert, and use abbreviation for things like “inner join” to just “join”
You can include and suggest popular open source libraries but they should all be free.
Use common schema naming to make it interoperable with other social network apps in the future.
Provide comments for most lines of code to make it really easy for everyone to understand. Also put the suggested file name before each code section.
Ask me questions to clarify anytime that my question or instruction is ambiguous.
What questions do you have for me so that you can help me most effectively with this?
Unified Modification-History Layer
Help me write the code for an insert, update and delete layer, where all modifications are tracked in their own table with a sub-table for every field which was modified with its old value. If the field is a lookup field then we store both the id and lookup value of the old and the new values.
We receive a dynamic array of values for fields that were possibly changed on a form.
We check if the values have actually changed by pulling the existing values in the db.
If there is no record ID supplied, then we insert the record instead of updating it.
If its a delete operation, then we store all the not-null field values in the Modification-History table.
For the fields that have been updated we generate an update statement for just those field whose field values have changed and for each of these fields we enter into the this Modification-History table.
If no field values have been updated then we do nothing.
This has to work without predefined tables and columns, so its truly dynamic, so that users can add new columns to the tables in the db without having to generate different code.
Use all the best practices and include lots of comments so beginners would understand.
Let me know if you have any clarifying questions.
User roles and permissions: What types of users will this app cater to (e.g., individuals, organizations, service providers)? Will there be different permission levels for each type of user?
Timebank/credits system: How will the credits system work? How are credits earned and spent, and are there any restrictions or special conditions for their use?
Matching engine: What factors should be considered for matching people (e.g., location, interests, skills, availability)? How can users specify their preferences for matches?
Service Provider Directory: How do service providers get listed in the directory? Will there be a review or verification process for listings? How can users search and filter the directory?
Interoperability with other social network apps: Are there specific social network apps you'd like to ensure compatibility with, and which features or data should be interoperable?