This repository stores a single page application built in the scope of this project. The aim of this project is to create social privacy-preserving application on top of Solid platform. The project has beed done by me and @Cristian Grigoriu. PDF presentation of the project
We have used Solid POD's as distributed data storage for storing users data. Solid network is consist of independent web servers that provides authorized access to the user's data. All user's resources have unique url address and can be accessed by HTTP requests.
Reviewapp is a multi-functional social application on top of Solid conventions and tools. This privacy-preserving web application allows users to manage a list of reviews and to share it with any registered users in a decentralized manner. The application preserves user privacy by separating application from data such that each user stores personal data on it's own Pod.
The application provides to user ability:
- to share reviews about visited places (hotels and restaurants);
- to choose who can read their reviews.
Reviews are resources that:
- stores only on the author’s POD;
- described by well-known RDF vocabularies;
- available for another applications.
- It uses OpenSreetMap web service to find a place that was entered in the search field.
- I have tested a new approach of dynamic creation modal dialogs.
git clone <link to the repository>
npm install
npm install -g angular-cli
Main service commands:
- Run in development mode
ng serve
ornpm run start
. The application will be available by the linklocalhost:4200
; - Compile production version
npm run build
. You can find build artifacts in the folder./dist
; - Run the production version
npm run runprod
. The page will be available onlocalhost:9061
.
Run ng generate component component-name
to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module
.
ng generate component pages/<page name>
ng generate component ui/<component name>
Run ng build
to build the project. The build artifacts will be stored in the dist/
directory. Use the --prod
flag for a production build.
Run ng test
to execute the unit tests via Karma.
Run ng e2e
to execute the end-to-end tests via Protractor.
Go to tsconfig.app.json into paths add the following data :
"paths": {
"zlib": ["node_modules/browserify-zlib/lib/index.js"],
"http": ["node_modules/@angular/http"],
"https": ["node_modules/@angular/http"],
"stream": ["node_modules/jszip/dist/jszip.min.js"]
}