langdida-server is the backend project that complements langdida-ui. langdida is a personal language learning tool inspired by lingQ, a popular language learning platform. However, I have customized certain aspects of the tool to better suit my needs.
The server-side functionality is implemented using Golang and is designed to support the following features:
- User authentication and authorization
- Article management and retrieval
- Vocabulary tracking and review
- Learning progress tracking
Before getting started, ensure that you have the following prerequisites installed on your development machine:
- Golang
- Database (Postgresql or Sqlite)
- Create a new PostgreSQL database for langdida-server.
- Update the database connection settings in the
configs.ymlfile.
- Clone the repository.
- Run
go mod downloadto install the dependencies. - Run
go run main.goto start the server.
Usage of the program:
-configs string
specify the config file, refer to configs.md (default "./assets/configs.yaml")The server exposes a RESTful API for communication with the langdida-ui. The API endpoints and their respective functionalities are documented in the API Documentation file.
The server has no authentication and therefore listens on 127.0.0.1 only. Browser access is limited to HTTP(S) origins on localhost or loopback IP addresses. Do not expose it through a reverse proxy or port forward; a non-loopback deployment requires authentication, an explicit CORS allowlist, request limits, and rate limiting first.
If you would like to contribute to this project, please follow these steps:
- Fork the repository.
- Create a new branch for your feature (
git checkout -b feature/fooBar). - Commit your changes (
git commit -m 'Add some fooBar'). - Push to the branch (
git push origin feature/fooBar). - Create a new Pull Request.
Distributed under the MIT license. See LICENSE for more information.
see also langdida-ui


