Comments (14)
Hi @elkee2003, thank you for sharing your schema. We will try to reproduce the issue on our end and report back with findings soon.
from amplify-js.
Hello, @elkee2003 👋. I've got quite a few questions for you on this issue to see if we can figure out what's going on and unblock you. I'm not exactly sure what is failing here, so can you help break down/clarify the following:
- What response are you getting when you call getCurrentUser()`? Is it throwing an error or can you log the user returned?
- Have you made any changes that potentially haven't been pushed yet via
amplify push
command? - Where is this error coming from?
LOG {"ACTIVITY_NULL": 4, "PERMISSION_DENIED": 1, "POSITION_UNAVAILABLE": 2, "TIMEOUT": 3, "code": 3, "message": "Location request timed out"}
- Can you provide a little more details on the problem described here? "I am unable to access the dbuser, sometimes if, it shows and I update it from my local server, it doesn't show in the remote server (amplify studio)."
Any additional and relevant areas where you can include more outputs from the console logs (specifically the DataStore operations) would be helpful as well. Not sure if there's a minimal sample repo that you can provide as well, but if you have a more basic example without all the commented out code that would be great!
from amplify-js.
Hello, @elkee2003 👋. I've got quite a few questions for you on this issue to see if we can figure out what's going on and unblock you. I'm not exactly sure what is failing here, so can you help break down/clarify the following:
- What response are you getting when you call getCurrentUser()`? Is it throwing an error or can you log the user returned?
- Have you made any changes that potentially haven't been pushed yet via
amplify push
command?- Where is this error coming from?
LOG {"ACTIVITY_NULL": 4, "PERMISSION_DENIED": 1, "POSITION_UNAVAILABLE": 2, "TIMEOUT": 3, "code": 3, "message": "Location request timed out"}
- Can you provide a little more details on the problem described here? "I am unable to access the dbuser, sometimes if, it shows and I update it from my local server, it doesn't show in the remote server (amplify studio)."
Any additional and relevant areas where you can include more outputs from the console logs (specifically the DataStore operations) would be helpful as well. Not sure if there's a minimal sample repo that you can provide as well, but if you have a more basic example without all the commented out code that would be great!
-
My getCurrentUser works perfectly. I can always see the sub when I console.log it. My issue is with Datastore.
-
I thought it syncs with my appsync automatically ( I thought I did not need to do amplify push everytime I make changes). Why I did amplify push in the first place was because, when I delete data from my AppSync (remote server) it doesn't get deleted in my local server (my computer). This is one issue I have been having.
-
Where the error of
LOG {"ACTIVITY_NULL": 4, "PERMISSION_DENIED": 1, "POSITION_UNAVAILABLE": 2, "TIMEOUT": 3, "code": 3, "message": "Location request timed out"}
is coming from, I have no idea. It's just a new error that popped up. -
Initially, if I create a user, I can console.log the database user (dbUser). However, if I try to update the user, or access the user after that, in the console.log the result will be null. I have tried to do datastore.clear() to clear all the data in datastore, and start afresh, but to no avail. Each time I initially create a user I see it, but if I try to access that user to do something else, or I update it I get null.
-
Sometimes, I get the error:
[WARN] 33:53.414 DataStore - subscriptionError Connection failed: {"errors":[{"message":"Validation error of type FieldUndefined: Field '_version'
-
This is my repo: https://github.com/elkee2003/Atua2024.git
You will see where I have tried to catch the error, it is not catching any error. but at the same time, it is not showing database user (it is showing my sub though).
from amplify-js.
Hello, @elkee2003 👋. I've got quite a few questions for you on this issue to see if we can figure out what's going on and unblock you. I'm not exactly sure what is failing here, so can you help break down/clarify the following:
- What response are you getting when you call getCurrentUser()`? Is it throwing an error or can you log the user returned?
- Have you made any changes that potentially haven't been pushed yet via
amplify push
command?- Where is this error coming from?
LOG {"ACTIVITY_NULL": 4, "PERMISSION_DENIED": 1, "POSITION_UNAVAILABLE": 2, "TIMEOUT": 3, "code": 3, "message": "Location request timed out"}
- Can you provide a little more details on the problem described here? "I am unable to access the dbuser, sometimes if, it shows and I update it from my local server, it doesn't show in the remote server (amplify studio)."
Any additional and relevant areas where you can include more outputs from the console logs (specifically the DataStore operations) would be helpful as well. Not sure if there's a minimal sample repo that you can provide as well, but if you have a more basic example without all the commented out code that would be great!
Hello, please is there a solution to my problem
from amplify-js.
Please I need help
from amplify-js.
Hi @elkee2003 can you confirm that you have Conflict Detection enabled on your API? If you don't, that would explain the subscription error. DataStore expects specific fields to exist on the schema such as _version
, _lastChangedAt
, and _deleted
which are automatically added if Conflict Detection is enabled when compiling/deploying the schema.
Looking at the logic you have to create and update a user, it seems to make sense and should work even if there is a misconfiguration as I mentioned above. To better support you, can you please explain the use case and exactly what you are trying to do so that we can provide a working sample?
It seems you are trying to create a context/provider where components can access a user record stored in state. Have you checked if that record is persisting to DynamoDB when saving? You can check the network activity for the mutation response or query for the record in the DynamoDB console's Items explorer.
Also, are you able to query for the record by the sub
or even id
separate from the context/provider pattern?
Lastly, if you want to sign in/out and keep the state in sync with the auth status of the user, you should use the Hub utility to listen for auth events and clear your auth state and/or local database in response to auth events.
https://docs.amplify.aws/react/build-a-backend/utilities/hub/
from amplify-js.
Hi @elkee2003 can you confirm that you have Conflict Detection enabled on your API? If you don't, that would explain the subscription error. DataStore expects specific fields to exist on the schema such as
_version
,_lastChangedAt
, and_deleted
which are automatically added if Conflict Detection is enabled when compiling/deploying the schema.Looking at the logic you have to create and update a user, it seems to make sense and should work even if there is a misconfiguration as I mentioned above. To better support you, can you please explain the use case and exactly what you are trying to do so that we can provide a working sample?
It seems you are trying to create a context/provider where components can access a user record stored in state. Have you checked if that record is persisting to DynamoDB when saving? You can check the network activity for the mutation response or query for the record in the DynamoDB console's Items explorer. Also, are you able to query for the record by the
sub
or evenid
separate from the context/provider pattern?Lastly, if you want to sign in/out and keep the state in sync with the auth status of the user, you should use the Hub utility to listen for auth events and clear your auth state and/or local database in response to auth events.
https://docs.amplify.aws/react/build-a-backend/utilities/hub/
The conflict detection is enabled, as seen in the screenshot:
I have a question: What should I use as the conflict resolution strategy? Automerge or Optimistic Concurrency:
What I want to do is to simply create a user and update a user, the only the difference is that I access the authenticated user in AuthContext and the database user, so that I will be able to access them everywhere I want in my application. However, I am unable to access the database user, although I can access the authenticated user and even the sub of the authenticated user anywhere and anytime in my application.
I am trying to create a context provider, where components can access the a user's record stored in state. The issue is, even if i can see the dbuser that I have created in appsync (remote server), in vs code, it still shows that the dbuser is null.
This is the evidence:
In this screenshot you can clearly see a dbuser:
In this other screenshot, you can see in my code that I am trying to access the user field at an index of 0 with setDbUser, which accesses it comfortably as seen in my console. However, I cannot access dbUser after console.logging it, as also seen in my console that dbUser is null
I can see the records in DynamoDb:
I plead that you help me find a solution to this, even if it means us video calling and working on it at the same time, or I share my screen with you so you can have a better understanding of what I am facing. I have been having issues with aws amplify for more than a year now, especially with datastore. Thank you as you look into my problem.
from amplify-js.
Hi @elkee2003 can you confirm that you have Conflict Detection enabled on your API? If you don't, that would explain the subscription error. DataStore expects specific fields to exist on the schema such as
_version
,_lastChangedAt
, and_deleted
which are automatically added if Conflict Detection is enabled when compiling/deploying the schema.Looking at the logic you have to create and update a user, it seems to make sense and should work even if there is a misconfiguration as I mentioned above. To better support you, can you please explain the use case and exactly what you are trying to do so that we can provide a working sample?
It seems you are trying to create a context/provider where components can access a user record stored in state. Have you checked if that record is persisting to DynamoDB when saving? You can check the network activity for the mutation response or query for the record in the DynamoDB console's Items explorer.
Also, are you able to query for the record by thesub
or evenid
separate from the context/provider pattern?Lastly, if you want to sign in/out and keep the state in sync with the auth status of the user, you should use the Hub utility to listen for auth events and clear your auth state and/or local database in response to auth events.
https://docs.amplify.aws/react/build-a-backend/utilities/hub/
Hello good day, just a reminder that I'm still waiting
from amplify-js.
Hi @elkee2003 can you confirm that you have Conflict Detection enabled on your API? If you don't, that would explain the subscription error. DataStore expects specific fields to exist on the schema such as
_version
,_lastChangedAt
, and_deleted
which are automatically added if Conflict Detection is enabled when compiling/deploying the schema.Looking at the logic you have to create and update a user, it seems to make sense and should work even if there is a misconfiguration as I mentioned above. To better support you, can you please explain the use case and exactly what you are trying to do so that we can provide a working sample?
It seems you are trying to create a context/provider where components can access a user record stored in state. Have you checked if that record is persisting to DynamoDB when saving? You can check the network activity for the mutation response or query for the record in the DynamoDB console's Items explorer.
Also, are you able to query for the record by thesub
or evenid
separate from the context/provider pattern?Lastly, if you want to sign in/out and keep the state in sync with the auth status of the user, you should use the Hub utility to listen for auth events and clear your auth state and/or local database in response to auth events.
https://docs.amplify.aws/react/build-a-backend/utilities/hub/
Hello good day, just a reminder that I'm still waiting
Please I am still waiting for a response
from amplify-js.
Hi @elkee2003 can you confirm that you have Conflict Detection enabled on your API? If you don't, that would explain the subscription error. DataStore expects specific fields to exist on the schema such as
_version
,_lastChangedAt
, and_deleted
which are automatically added if Conflict Detection is enabled when compiling/deploying the schema.Looking at the logic you have to create and update a user, it seems to make sense and should work even if there is a misconfiguration as I mentioned above. To better support you, can you please explain the use case and exactly what you are trying to do so that we can provide a working sample?
It seems you are trying to create a context/provider where components can access a user record stored in state. Have you checked if that record is persisting to DynamoDB when saving? You can check the network activity for the mutation response or query for the record in the DynamoDB console's Items explorer.
Also, are you able to query for the record by thesub
or evenid
separate from the context/provider pattern?Lastly, if you want to sign in/out and keep the state in sync with the auth status of the user, you should use the Hub utility to listen for auth events and clear your auth state and/or local database in response to auth events.
https://docs.amplify.aws/react/build-a-backend/utilities/hub/
Hello just a kind reminder that I still await a response
from amplify-js.
@elkee2003 - can you provide your GraphQL schema? I suspect there's two potential issues 1/ the authorization rules aren't configured in a way that'll make the data accessible. 2/ the "query" call is async to the sync process, so there's a potential for a race condition even if the data has been synced. (I also recommend you to call DataStore.clear() and stop/start.
from amplify-js.
@elkee2003 - can you provide your GraphQL schema? I suspect there's two potential issues 1/ the authorization rules aren't configured in a way that'll make the data accessible. 2/ the "query" call is async to the sync process, so there's a potential for a race condition even if the data has been synced. (I also recommend you to call DataStore.clear() and stop/start.
I got this from amplify > backend > api > schema.graphql:
This is the code:
`enum AtuaType {
WALK
BIKE
CAR
GROUP
}
enum OrderStatus {
READY_FOR_PICKUP
ACCEPTED
PICKEDUP
DELIVERED
}
type Order @model @auth(rules: [{allow: public}]) {
id: ID!
recipientName: String!
recipientNumber: String!
orderDetails: String
total: Float
originPlace: String
destinationPlace: String
atuaType: AtuaType
status: OrderStatus
userID: ID! @Index(name: "byUser")
}
type User @model @auth(rules: [{allow: public}]) {
id: ID!
sub: String!
name: String
phoneNumber: String
address: String
lng: Float
lat: Float
Orders: [Order] @hasmany(indexName: "byUser", fields: ["id"])
type: AtuaType
}
`
I got this from amplify > backend > api > Atua > build > schema.graphql:
This is the code:
`enum AtuaType {
WALK
BIKE
CAR
GROUP
}
enum OrderStatus {
READY_FOR_PICKUP
ACCEPTED
PICKEDUP
DELIVERED
}
type Order @aws_iam @aws_api_key {
id: ID!
recipientName: String!
recipientNumber: String!
orderDetails: String
total: Float
originPlace: String
destinationPlace: String
atuaType: AtuaType
status: OrderStatus
userID: ID!
createdAt: AWSDateTime!
updatedAt: AWSDateTime!
_version: Int!
_deleted: Boolean
_lastChangedAt: AWSTimestamp!
}
type User @aws_iam @aws_api_key {
id: ID!
sub: String!
name: String
phoneNumber: String
address: String
lng: Float
lat: Float
Orders(filter: ModelOrderFilterInput, sortDirection: ModelSortDirection, limit: Int, nextToken: String): ModelOrderConnection
type: AtuaType
createdAt: AWSDateTime!
updatedAt: AWSDateTime!
_version: Int!
_deleted: Boolean
_lastChangedAt: AWSTimestamp!
}
input ModelStringInput {
ne: String
eq: String
le: String
lt: String
ge: String
gt: String
contains: String
notContains: String
between: [String]
beginsWith: String
attributeExists: Boolean
attributeType: ModelAttributeTypes
size: ModelSizeInput
}
input ModelIntInput {
ne: Int
eq: Int
le: Int
lt: Int
ge: Int
gt: Int
between: [Int]
attributeExists: Boolean
attributeType: ModelAttributeTypes
}
input ModelFloatInput {
ne: Float
eq: Float
le: Float
lt: Float
ge: Float
gt: Float
between: [Float]
attributeExists: Boolean
attributeType: ModelAttributeTypes
}
input ModelBooleanInput {
ne: Boolean
eq: Boolean
attributeExists: Boolean
attributeType: ModelAttributeTypes
}
input ModelIDInput {
ne: ID
eq: ID
le: ID
lt: ID
ge: ID
gt: ID
contains: ID
notContains: ID
between: [ID]
beginsWith: ID
attributeExists: Boolean
attributeType: ModelAttributeTypes
size: ModelSizeInput
}
input ModelSubscriptionStringInput {
ne: String
eq: String
le: String
lt: String
ge: String
gt: String
contains: String
notContains: String
between: [String]
beginsWith: String
in: [String]
notIn: [String]
}
input ModelSubscriptionIntInput {
ne: Int
eq: Int
le: Int
lt: Int
ge: Int
gt: Int
between: [Int]
in: [Int]
notIn: [Int]
}
input ModelSubscriptionFloatInput {
ne: Float
eq: Float
le: Float
lt: Float
ge: Float
gt: Float
between: [Float]
in: [Float]
notIn: [Float]
}
input ModelSubscriptionBooleanInput {
ne: Boolean
eq: Boolean
}
input ModelSubscriptionIDInput {
ne: ID
eq: ID
le: ID
lt: ID
ge: ID
gt: ID
contains: ID
notContains: ID
between: [ID]
beginsWith: ID
in: [ID]
notIn: [ID]
}
enum ModelAttributeTypes {
binary
binarySet
bool
list
map
number
numberSet
string
stringSet
_null
}
input ModelSizeInput {
ne: Int
eq: Int
le: Int
lt: Int
ge: Int
gt: Int
between: [Int]
}
enum ModelSortDirection {
ASC
DESC
}
type ModelOrderConnection @aws_api_key @aws_iam {
items: [Order]!
nextToken: String
startedAt: AWSTimestamp
}
input ModelAtuaTypeInput {
eq: AtuaType
ne: AtuaType
}
input ModelOrderStatusInput {
eq: OrderStatus
ne: OrderStatus
}
input ModelOrderFilterInput {
id: ModelIDInput
recipientName: ModelStringInput
recipientNumber: ModelStringInput
orderDetails: ModelStringInput
total: ModelFloatInput
originPlace: ModelStringInput
destinationPlace: ModelStringInput
atuaType: ModelAtuaTypeInput
status: ModelOrderStatusInput
userID: ModelIDInput
and: [ModelOrderFilterInput]
or: [ModelOrderFilterInput]
not: ModelOrderFilterInput
_deleted: ModelBooleanInput
}
type Query {
getOrder(id: ID!): Order @aws_api_key @aws_iam
listOrders(filter: ModelOrderFilterInput, limit: Int, nextToken: String): ModelOrderConnection @aws_api_key @aws_iam
syncOrders(filter: ModelOrderFilterInput, limit: Int, nextToken: String, lastSync: AWSTimestamp): ModelOrderConnection @aws_api_key @aws_iam
ordersByUserID(userID: ID!, sortDirection: ModelSortDirection, filter: ModelOrderFilterInput, limit: Int, nextToken: String): ModelOrderConnection @aws_api_key @aws_iam
getUser(id: ID!): User @aws_api_key @aws_iam
listUsers(filter: ModelUserFilterInput, limit: Int, nextToken: String): ModelUserConnection @aws_api_key @aws_iam
syncUsers(filter: ModelUserFilterInput, limit: Int, nextToken: String, lastSync: AWSTimestamp): ModelUserConnection @aws_api_key @aws_iam
}
input ModelOrderConditionInput {
recipientName: ModelStringInput
recipientNumber: ModelStringInput
orderDetails: ModelStringInput
total: ModelFloatInput
originPlace: ModelStringInput
destinationPlace: ModelStringInput
atuaType: ModelAtuaTypeInput
status: ModelOrderStatusInput
userID: ModelIDInput
and: [ModelOrderConditionInput]
or: [ModelOrderConditionInput]
not: ModelOrderConditionInput
_deleted: ModelBooleanInput
}
input CreateOrderInput {
id: ID
recipientName: String!
recipientNumber: String!
orderDetails: String
total: Float
originPlace: String
destinationPlace: String
atuaType: AtuaType
status: OrderStatus
userID: ID!
_version: Int
}
input UpdateOrderInput {
id: ID!
recipientName: String
recipientNumber: String
orderDetails: String
total: Float
originPlace: String
destinationPlace: String
atuaType: AtuaType
status: OrderStatus
userID: ID
_version: Int
}
input DeleteOrderInput {
id: ID!
_version: Int
}
type Mutation {
createOrder(input: CreateOrderInput!, condition: ModelOrderConditionInput): Order @aws_api_key @aws_iam
updateOrder(input: UpdateOrderInput!, condition: ModelOrderConditionInput): Order @aws_api_key @aws_iam
deleteOrder(input: DeleteOrderInput!, condition: ModelOrderConditionInput): Order @aws_api_key @aws_iam
createUser(input: CreateUserInput!, condition: ModelUserConditionInput): User @aws_api_key @aws_iam
updateUser(input: UpdateUserInput!, condition: ModelUserConditionInput): User @aws_api_key @aws_iam
deleteUser(input: DeleteUserInput!, condition: ModelUserConditionInput): User @aws_api_key @aws_iam
}
input ModelSubscriptionOrderFilterInput {
id: ModelSubscriptionIDInput
recipientName: ModelSubscriptionStringInput
recipientNumber: ModelSubscriptionStringInput
orderDetails: ModelSubscriptionStringInput
total: ModelSubscriptionFloatInput
originPlace: ModelSubscriptionStringInput
destinationPlace: ModelSubscriptionStringInput
atuaType: ModelSubscriptionStringInput
status: ModelSubscriptionStringInput
userID: ModelSubscriptionIDInput
and: [ModelSubscriptionOrderFilterInput]
or: [ModelSubscriptionOrderFilterInput]
_deleted: ModelBooleanInput
}
type Subscription {
onCreateOrder(filter: ModelSubscriptionOrderFilterInput): Order @aws_subscribe(mutations: ["createOrder"]) @aws_api_key @aws_iam
onUpdateOrder(filter: ModelSubscriptionOrderFilterInput): Order @aws_subscribe(mutations: ["updateOrder"]) @aws_api_key @aws_iam
onDeleteOrder(filter: ModelSubscriptionOrderFilterInput): Order @aws_subscribe(mutations: ["deleteOrder"]) @aws_api_key @aws_iam
onCreateUser(filter: ModelSubscriptionUserFilterInput): User @aws_subscribe(mutations: ["createUser"]) @aws_api_key @aws_iam
onUpdateUser(filter: ModelSubscriptionUserFilterInput): User @aws_subscribe(mutations: ["updateUser"]) @aws_api_key @aws_iam
onDeleteUser(filter: ModelSubscriptionUserFilterInput): User @aws_subscribe(mutations: ["deleteUser"]) @aws_api_key @aws_iam
}
type ModelUserConnection @aws_api_key @aws_iam {
items: [User]!
nextToken: String
startedAt: AWSTimestamp
}
input ModelUserFilterInput {
id: ModelIDInput
sub: ModelStringInput
name: ModelStringInput
phoneNumber: ModelStringInput
address: ModelStringInput
lng: ModelFloatInput
lat: ModelFloatInput
type: ModelAtuaTypeInput
and: [ModelUserFilterInput]
or: [ModelUserFilterInput]
not: ModelUserFilterInput
_deleted: ModelBooleanInput
}
input ModelUserConditionInput {
sub: ModelStringInput
name: ModelStringInput
phoneNumber: ModelStringInput
address: ModelStringInput
lng: ModelFloatInput
lat: ModelFloatInput
type: ModelAtuaTypeInput
and: [ModelUserConditionInput]
or: [ModelUserConditionInput]
not: ModelUserConditionInput
_deleted: ModelBooleanInput
}
input CreateUserInput {
id: ID
sub: String!
name: String
phoneNumber: String
address: String
lng: Float
lat: Float
type: AtuaType
_version: Int
}
input UpdateUserInput {
id: ID!
sub: String
name: String
phoneNumber: String
address: String
lng: Float
lat: Float
type: AtuaType
_version: Int
}
input DeleteUserInput {
id: ID!
_version: Int
}
input ModelSubscriptionUserFilterInput {
id: ModelSubscriptionIDInput
sub: ModelSubscriptionStringInput
name: ModelSubscriptionStringInput
phoneNumber: ModelSubscriptionStringInput
address: ModelSubscriptionStringInput
lng: ModelSubscriptionFloatInput
lat: ModelSubscriptionFloatInput
type: ModelSubscriptionStringInput
and: [ModelSubscriptionUserFilterInput]
or: [ModelSubscriptionUserFilterInput]
_deleted: ModelBooleanInput
}
`
from amplify-js.
In the meantime, if you can provide a small sample app or can invite me to your repo to build the app locally please do. It would help to speed up the reproduction as I notice you are building a React Native app and will have to try to recreate the environment including package versions, amplify backend, etc
from amplify-js.
In the meantime, if you can provide a small sample app or can invite me to your repo to build the app locally please do. It would help to speed up the reproduction as I notice you are building a React Native app and will have to try to recreate the environment including package versions, amplify backend, etc
Done!
from amplify-js.
Related Issues (20)
- amplify/auth resetPassword succeeds but customSmsSender trigger lambda never called HOT 3
- Federated Sign-in - App Sync list query Auth Error HOT 2
- Amplify not works well if I have configuring multiple user pools with condition
- Next, js, Amplify js.fetchAuthSession({forceRefresh: true}) does not work as expected and returns tokens as undefined. How to manage a refresh token in Amplify v6 in Next.js HOT 4
- Amplify CLI Gen 2 - Multiple SortKeys combined into one input with GraphQL Generation HOT 5
- AWS storage upload issue HOT 2
- Datastore.save() sending _version of previous query model instead of current model. HOT 2
- runWithAmplifyServerContext throwing error, ⨯ Error: Cannot access Cognito.length on the server. You cannot dot into a client module from a server component. You can only pass the imported name through. HOT 4
- 6.3.3 is stable ? HOT 1
- ResizeObserver loop when navigating in the Authenticator component HOT 1
- [v6] resetPassword not trigger UserMigration lambda HOT 2
- Add timeout on GET and POST api calls for amplify v6 HOT 2
- No federated JWT token when using AppSync OIDC in Amplify Gen2 HOT 5
- Permission denied - allow.authenticated() HOT 6
- [v6] sendUserAttributeVerificationCode not send code to destination email HOT 5
- MD5 not calculating correctly when selecting file from broswer, failing with BadDigest Error HOT 4
- Auth.SignIn not allowing username only signin HOT 2
- `Hub.listen` not firing when inside `useEffect` HOT 14
- Hub should automatically fire `tokenRefresh` event through Hub HOT 1
- Google login in react native requires two login attempts to work only on production ANDROID HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from amplify-js.