Skip to content

Architecture

oneillm71 edited this page Oct 21, 2019 · 14 revisions

Type of Web Application:

Our TextPenguin project will be a SPA. SPAs are apps that do not require page reloading during use, so as a user navigates through the website, the data will not have to be reloaded. Angular will be used as the frontend and Django will be used as a backend using Django REST framework. Since SPAs are fairly easy to debug with Chrome, it should help during development.

URLs that will be implemented:

https://www.textpenguin.com/

https://www.textpenguin.com/analyzed

https://www.textpenguin.com/recentlyUsed

https://www.textpenguin.com/resources

https://www.textpenguin.com/about

https://www.textpenguin.com/login

https://www.textpenguin.com/login_create

##Rest API: We will be implementing a REST API. We will be using the Django REST framework as it provides built in support for creating REST APIs.

#Methods and parameters: login(UserName, Password): hashes the inputted password and checks the database an entry with a username that matched the inputted username, and a password that makes the hash

logout(): logs out the current signed in user (no parameters) signup(UserName, Password): first checks to see if a user already exists with the given username, if not it adds a user to the database

isLoggedIn(): returns the username of the currently signed in user and returns null if no user is signed in

createProject(ProjectName, UserName, ListOfDocuments): creates a new project with the given name, under the user’s account. A list of documents can also be included (the list may be empty or just have one document) and these documents are associated with the project

updateProject(ProjectName, UserName, ListOfDocuments, NewProjectName): edits an already created project. This could be adding more documents or changing the name of the project.

deleteProject(ProjectName, UserName, ListOfDocuments): A way to delete a project in the database