forcrowd / backbone Goto Github PK
View Code? Open in Web Editor NEWLightweight API service for rapid application prototyping
Home Page: https://backbone.forcrowd.org
License: MIT License
Lightweight API service for rapid application prototyping
Home Page: https://backbone.forcrowd.org
License: MIT License
Currently GlobalGoalsFund client use WealthEconomy API:
https://github.com/forCrowd/GlobalGoalsFund
Move it to new Backbone API.
The differences:
. ResourcePool -> Project
. Project - InitialValue
. Element - IsMainElement
. ElementField - IndexEnabled -> RatingEnabled
. ElementField - IndexRatingTotal + Count -> RatingTotal + Count
. ElementCell - NumericValueTotal + Count -> DecimalValueTotal + Count
WebApi - CorsPolicyProvider class is reading / constructing allowed origin list for each request.
To prevent performance issues, cache the list and update it only if there is a change in the list.
This is an experimental attempt to help you to get familiar with our project and make your first pull request.
Follow this tutorial on our wiki to get started:
https://github.com/forCrowd/Backbone/wiki/First-Mission
Try to move "angular-client" under "projects" folder
Currently even if the user is not logged in, it shows a username. That should be hidden in that state
The project owner must confirm that he has the owner of that domain.
Improve exception handler for EntityValidationErrors!
To test the current state:
Use "dev-all" module in main.ts, navigate to "OData" link, and use "Project - Create own" button after removing one of the mandatory fields. It returns "Internal server error" even though it should return "400 Bad request" by mentioning what is invalid with the model.
There should be a validation between the domain that the request comes from and the project that the user is trying to interact through Project - Origin field.
It shouldn't be possible to make a request from a domain to a project that the domains (origins) don't match.
Study & create a new backend with ASP.NET Core. So the app can be easily used/developed under Mac/Linux.
Create a quick documentation page that shows how to get/insert/update/delete data
"AllowedOrigins" setting determines which clients can access to WebApi by using CORS.
Currently this is set under "appSettings.config" file as a static list:
WebApi/Configs/appSettings.config
<!-- Allowed origins in CORS policy -->
<add key="AllowAnyOrigin" value="true" />
<add key="AllowedOrigins" value="" />
Then "WebApi/App_Start/CorsConfig.cs" file uses this setting when WebApi starts:
foreach (var allowedDomain in Framework.AppSettings.AllowedOrigins)
{
policy.Origins.Add(allowedDomain);
}
Since every project should be able to have their own domain/host, we should be able to update this setting dynamically.
Alternative is to allow every domain/host (*) to interact with our WebApi, but since it may have an impact on security, this should be the last resort.
Notes from Lama, our designer
1/1 The red square is to indicate how the demo video is supposed to look.
1/2 The screen shot is taken from a mac desktop. The proportions of the screen and the assets are fit for laptop screen sizes but they should be adjustable across all screens to look the same. I recall it being an issue my previous developer came across.
1/3 side bar shows on the left handside of the landing page when screen minimized.
If the user is not logged in, display HomeComponent, if the user is logged in, display Dashboard component
From Lama:
"For the video, it is supposed to stretch and cover the left of the screen. Like i designed it within the prototype"
Zeplin link:
https://app.zeplin.io/project/5bd11ddb91d4f20f496d29ce/screen/5bd11e6f25d7094aacec015a
Currently there are two scrollbars on the screen, remove the inner one
Currently there is no "overview" page for the projects, need a new page that can replace old "viewer/editor" pages.
Initially this page can contain a very basic information about the project:
. Name / key of the project
. Owner (user name)
. Created / modified on
. Number of elements, fields, items, cell, user element cells.
Projects that are shown in search / profile / admin - projects pages can have a link to this page.
Existing files can be used as a base from Wealth Economy:
/main/project/project-editor.component.css
/main/project/project-editor.component.html
/main/project/project-editor.component.ts
/main/project/project-viewer.component.html
/main/project/project-viewer.component.ts
Later on, this page can display all elements/fields/items/cells and their details.
Desc: Admin page is still using old bootstrap classes, update them with angular material.
Steps:
. Login to app with admin account (username: admin - password: [yyyymmdd]
. Navigate to the following pages:
http://localhost:4200/app/admin
http://localhost:4200/app/admin/projects
Use "profile" & "search" pages as a base:
\AngularClient\src\main\core\components\search.component.html
\AngularClient\src\main\user\profile.component.html
Currently WealthEconomy client has its own WealthEconomy API:
https://github.com/forCrowd/WealthEconomy
Move it to new Backbone API, and remove WealthEconomy API (it should only contain AngularClient project).
Differences between Wealth & Backbone APIs:
. ResourcePool -> Project
. Project - InitialValue
. Element - IsMainElement
. ElementField - IndexEnabled -> RatingEnabled
. ElementField - IndexRatingTotal + Count -> RatingTotal + Count
. ElementCell - NumericValueTotal + Count -> DecimalValueTotal + Count
Show what are the possible request options for API: GET, POST, MERGE, BATCH, DELETE?
Example code would be a great plus!
Display user & projects from, from today, from last week, from last month, total
Display last 5 users & projects
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.