cshangout / cs-hangout-website Goto Github PK
View Code? Open in Web Editor NEWCode for the CS Hangout Website.
Code for the CS Hangout Website.
The .NET API and related projects will be the backend of the site. The API will receive requests from the React client and respond with relevant data. The API should handle authenticating users, all CRUD operations for the data in the database pertaining to posts/classes, and use appropriate patterns to implement SOLID programming principles. The acceptance criteria will be:
As a user I need to be able to route successfully to the registration component. This should be accessible by the endpoint "http://localhost:4200/register"
Acceptance Criteria:
As a user, I need to be able to remain logged in during the length of my session. To do this, the backend will provide a JWT to the frontend. Successive requests from the frontend will contain this unique jwt for my user authentication. We need to research the best potential option to store this data in the frontend in between requests.
Acceptance Criteria:
Tips:
As a developer, I need to understand how to submit pull requests and how my code will be reviewed.
Acceptance Criteria:
As a developer I need to aggregate string content into one file to be easily accessible.
Acceptance Criteria:
The site will need to be hosted securely and available for access at any time. Determinations will be made for a hosting provider, potential containerization, and permissions to access the hosting environment. Acceptance Criteria will be:
As a user, I need to be able to log out.
Acceptance Criteria:
As a developer, I need the .NET API to utilize dependency injection to the create services on demand and handle garbage collection, while providing a loosely coupled environment. The startup class for the .NET API should contain the following:
Acceptance Criteria:
Auth endpoint should be created in an Authentication controller. This endpoint should be a Post request that accepts the username and password from the frontend and return an OK response.
Acceptance Criteria:
As a developer, I need an easy way to present information to a user based on a response to their input. A toast can be used when login attempts are made to advise if the login was successful or failed.
Acceptance Criteria:
As a user I need to see appropriate buttons on the header whether I am logged in, logged out, or registering. To do this, state of the header needs to be managed with using the 'loggedIn' variable and any other variables that should detect logged in state.
Acceptance Criteria:
Hint: You may have to manage state within a higher level file that passes state variables or state management methods to lower level components
The creation of the React client is the user interface for the site. This user interface should allow users to enter login information for the site, verify the legitimacy of the login attempt with the server, and contain all the functionality for users to make/view post for specific classes. For the the MVP the acceptance criteria will be:
As a developer, I need to be able to quickly set up my local environment to be able to write code for the .NET application.
Acceptance Criteria:
As a developer I need to have Identity management for users trying to access the backend endpoints. I need to use .Net Identity to assign users and role permissions.
Acceptance Criteria:
As a developer I need a configuration file to be able to be used and edited without continually redeployments. This file should not contain sensitive data and only endpoints or other config variables that are not secrets.
Acceptance Criteria:
As a developer, I need a UI component that will hold all other components within it to act as the main frame of the landing page. This component should be static throughout the landing page and act as the top level component that contains the functionality a user needs to log in.
Acceptance Criteria:
Create a temporary token service to be able to handle login attempts and respond with a JWT.
Acceptance Criteria:
As a developer, I need a secure way to store tokens to maintain user persistence within the application.
Awaiting completion of #55 before building criteria.
Update:
We will use local storage for the moment to store the JWT. We need to build an token manager that will store the token received and verify if it is still valid when requests are made
Creation of onboarding documentation to allow new developers to quickly set up and run the program locally, understand the design and goals of this project, and understand how to submit new code and complete work items. Acceptance Criteria is:
As a user, I need to be able to login and have my personal information validated against the server to confirm I am the correct individual. This will be done by a post call to the backend API route using the API route configuration. The post call should send the username and password to the backend and await a jwt token response if valid or error if invalid.
Acceptance Criteria:
As a developer, I need clearly defined testing goals to maintain testing consistency across the team and ensure code I write operates correctly.
Acceptance Criteria:
As a developer, I need to be able to navigate to different pages within the site. To do this, routing must be established. React Router needs to be implemented for our current react version and set up the basic routes for the current pages in the application.
Acceptance Criteria:
As a user, I would need to log into the site by providing a username and password. The password should not be visible when I am typing and should accept a max of 24 characters.
Acceptance Criteria:
As a user, I need to be able to go to a new page after successful login or registration. There will need to be a component created that will house all components that can be displayed post sign on. This will simply be the container and will be added to later. This component should be called MainContainer and should return a div currently.
Acceptance Criteria:
As a dev, I need to be able to easily track logs throughout the program. A logging library will assist in easily logging throughout the program. Serilog is a robust logger with many features and will fit our needs well.
Acceptance Criteria:
As a user, I would like to see a header that contains valuable information. This header should be reactive to whether I am logged in or not. When not logged in, the header should display the name of the site and a button to Login and a button to register. When logged in, the header should contain the name of the site, the user profile link, and a logout button.
Acceptance Criteria:
As a user, I need to be able to log out of the application. To do this, I will need to hit a logout endpoint within the api.
As a developer, robust unit testing needs to be completed to ensure code responds correctly.
Acceptance Criteria:
As a user, I need to be routed to the Main page of the site after logging in or registering successfully.
Acceptance Criteria:
As a developer, I need to understand the overall goal of the project and how everything will fit together.
Acceptance Criteria:
As a developer, I need to be able to quickly get the program running locally to be able to write code and maintain consistency across the team. This document should provide step by step instructions on how to set up my local environment.
Acceptance Criteria:
As a user, I need to be able to register for the application. This component should be opened when the register button on the header is clicked. The user should be routed to a specific Registration component with a form and a button to register. The button currently should log that the form was submitted.
Acceptance Criteria:
As a user I need to be able to send registration data to the backend api to be stored in the db. This call should be a post request to the /auth/register endpoint on the backend and send the username, email, and password captured in the login form.
Acceptance Criteria:
As a user, I need to be aware that a login attempt has failed. I need to see a toast that indicates the type of information that failed and how I can correct it. It would also be helpful if the color of the toast indicates a failure. This should be activated once the "submit" button has been pressed.
Acceptance Criteria:
Database will be needed to store user permissions and all data related to posts/classes. Acceptance Criteria is:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.