- React: π Smooth, intuitive interface for seamless interaction.
- Typescript: π Enhanced code reliability for a flawless experience.
- Golang: πͺ Robust backend services for efficient data handling.
- PostgreSQL: π‘οΈ Secure, reliable database management.
Dive into a new era of learning with FreeCallApp, inspired by the pioneering memory research of Professor Robert Allen Bjork. Tailored for ambitious learners in languages, medicine, law, and more, FreeCallApp is your gateway to mastering complex concepts with ease. πβ¨
- Free Recall Method: Leveraging cognitive science for deeper learning. Embrace the power of free recall, validated by Professor Bjork's research, to solidify your knowledge beyond simple recognition. π§ π‘
- Customized Learning Paths: Designed for you, adapting to your unique learning style.π
- Insightful Progress Tracking: Monitor your growth with detailed analytics. π
FreeCallApp transcends traditional learning methods. It's not just an app; it's a movement towards a future where learning is deeply integrated with the science of memory. π
With FreeCallApp, transform the way you learn. Our mission is to make your educational journey not just successful, but also enjoyable and memorable. ππ
The API is accessible at http://[hostname]:8080/
. Replace [hostname]
with the actual server address.
GET /users
: Retrieve a list of all users.POST /users
: Create a new user.GET /users/{userId}
: Retrieve a user by ID.PUT /users/{userId}
: Update a user by ID.DELETE /users/{userId}
: Delete a user by ID.
GET /topics
: Retrieve all topics.POST /topics
: Create a new topic.GET /topics/{topicId}
: Retrieve a topic by ID.PUT /topics/{topicId}
: Update a topic by ID.DELETE /topics/{topicId}
: Delete a topic by ID.
GET /sets
: Retrieve all sets.POST /sets
: Create a new set.
GET /words
: Retrieve all words.
{
"user_id": "int",
"username": "string",
"profile_name": "string"
"email": "string"
}
{
"topic_id": "int",
"topic_name": "string",
"user_id": "int",
"created_at": "string",
"updated_at": "string"
}
{
"set_id": 789,
"set_name": "Example Set",
"topic_id": 456,
"created_at": "2023-12-13T00:00:00Z",
"updated_at": "2023-12-13T12:00:00Z",
"user_id": null
}
{
"word_id": 1011,
"word_name": "Example Word",
"set_id": 789
}
{
"field_id": 1213,
"field_name": "Example Field",
"field_type": "string",
"set_id": 789,
"created_at": "2023-12-13T00:00:00Z",
"updated_at": "2023-12-13T12:00:00Z"
}
- POST
/users
- Create a new user. - GET
/users/{userId}
- Retrieve a specific user by their ID. - PUT
/users/{userId}
- Update a specific user. - DELETE
/users/{userId}
- Delete a specific user. - POST
/users/login
- Authenticate a user and return a token.
- POST
/topics
- Create a new topic. - PUT
/topics/{topicId}
- Update a specific topic. - DELETE
/topics/{topicId}
- Delete a specific topic.
- POST
/sets
- Create a new set. - PUT
/sets/{setId}
- Update a specific set. - DELETE
/sets/{setId}
- Delete a specific set.
- POST
/words
- Add a new word to a set. - PUT
/words/{wordId}
- Update a specific word. - DELETE
/words/{wordId}
- Delete a specific word.
-
POST
/fields
- Create a new field. -
PUT
/fields/{fieldId}
- Update a specific field. -
DELETE
/fields/{fieldId}
- Delete a specific field. -
Manage User Authentication:
- Manage user authentication using various methods such as setting a variable like 'isLogged' in the state of each component, using localStorage to save the login information, or implementing a token-based authentication system
-
Store Authentication Information:
- Once the user is authenticated, store this information on the client side. The common practice is to use cookies to store session information, ensuring that the information is secure.
-
Render User Session Page:
- After the user is authenticated, conditionally render the user session page to show the content that can be accessed. This can be done by checking the user's authentication status and then rendering the appropriate components or routes.
- GET
/search
- Implement a general search across various entities. - POST
/upload
- Develop an endpoint for uploading files. - GET
/notifications
- Retrieve notifications for the logged-in user. - GET
/analytics
- Provide analytics data. - GET
/users/{userId}/activity
- Retrieve activity logs of a specific user.
- WebSocket
/realtime
- Implement real-time updates via WebSocket. - POST
/batch
- Enable batch operations on various entities.
- Implement JWT or OAuth for secure user authentication.
- Introduce role-based access control (RBAC).
- Add Swagger documentation for the API.
- Set up structured logging for better traceability.
- Implement robust data validation and sanitization.
- Develop comprehensive unit and integration tests.
- Regularly update dependencies and perform security audits.
- Clone the repository
- Navigate to the server directory.
- Ensure you have Go installed and set up
- Run
go run *.go
to start the server