GithubHelp home page GithubHelp logo

helgezes / voclex Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 7.29 MB

Voclex is a tool for learning vocabulary with spaced-based repetition flashcards.

License: GNU General Public License v3.0

C# 21.96% HTML 7.00% SCSS 68.82% CSS 1.71% JavaScript 0.24% Dockerfile 0.26%
flashcard-application flashcard-generator flashcards language language-learning lexicon vocabulary vocabulary-builder vocabulary-learning android

voclex's Introduction

Voclex

Table of Contents
  1. About The Project
  2. Getting Started
  3. Contributing
  4. License
  5. Contact

About The Project

(Combined from the first syllables of Vocabulary and Lexicon.)

Voclex is a tool for learning vocabulary with spaced-based repetition flashcards.

Main goal: a tool to maximize efficiency of the process of learning new words by automating time-consuming routines such as searching in dictionaries, looking for pictures and pasting them in your app of choice (or even writing down by hand on a piece of paper), etc. The focus of an application should also be not only automating all of the possible routines, but using the most efficient techniques for learning and memorizing new words, such as spaced repetition flashcards with:

• audio pronunciation of the word (or a phrase)

• word spelling in the targeted language and in IPA

• picture or a gif that can be described by the term

• usage examples

• definition in the targeted language

• translation to the native language.

(back to top)

Current State Of The Application

The project is still in active development and currently is just a simplest possible form of a flashcard application. Features intended to achieve the aforementioned goal will be added soon, as well as many others (authentication, authorization, different storage options to mention a few).

Also, the look of the application is very basic as I'm not a designer and my CSS and Bootstrap skills are very limited, but this will be improved in the future as well. :)

Usage example

(back to top)

Technical Details

The main programming language used in the application is C#, but there are also some JavaScript libraries.

The project consists of 4 major parts:

• A Web API backend server written in ASP.NET Core. It stores information in an SQL database with the help of Entity Framework Core ORM.

• A Razor Class Library with pages written in Blazor, using HTML, CSS, Bootstrap for markup. It retrieves the necessary data from the Web API server.

• A Blazor WebAssembly project that uses the Razor Class Library to create a WebAssembly frontend application that a user can access with a browser.

• A .Net MAUI project that uses the Razor Class Library to create a Mobile (both iOS and Android) and a Desktop standalone application, that a user can install on their device.

With this architecture we are able to create a cross-platform application that shares most of its codebase across all platforms, thus greatly reducing our efforts to create and maintain it.

This is not a comprehensive list of the actual .csproj projects, it's just those logical parts that I wanted to be highlighted here.

List Of The Technologies Used

C#, ASP.NET Core, SQL, Entity Framework Core, Blazor, .NET MAUI, HTML, CSS

(back to top)

Getting Started

All of the instructions below assume that you have cloned this repository onto your machine. Additionally, for all of the instructions except for Debug With Multiple Startup Projects, you will need to have a Docker Desktop instance installed and running.

Quickstart With Docker

  1. Navigate to Voclex folder inside the root of the repository.
  2. Execute docker-compose up inside this folder.

This will run the Web API on http://localhost:61072/ and the Blazor WebAssembly Client on http://localhost:5181/.

Type http://localhost:5181/ in your browser to access the application UI.

(back to top)

Debugging With Visual Studio

To debug the application with Visual Studio you have 3 options.

Debug With Multiple Startup Projects

  1. Open Voclex.sln in Visual Studio.
  2. Select both the BlazorWebAssembly and the WebApi projects as a startup projects using the multiple startup projects feature.
  3. Press Start Debugging (F5 on Windows by default).

Debug The Client Application

  1. Navigate to Voclex folder inside the root of the repository.
  2. Run docker build -t voclexwebapi -f ".\WebApi\Dockerfile" ..
  3. Run docker run -p "61072:80" -e ASPNETCORE_ENVIRONMENT=Development voclexwebapi. This will run the Web API on http://localhost:61072/.
  4. Open Voclex.sln in Visual Studio.
  5. Select the BlazorWebAssemblyClient project as a startup project.
  6. Press Start Debugging.
  7. Go to http://localhost:61072/

Debug The Web API

  1. Open Voclex.sln in Visual Studio.
  2. Select the WebApi project as a startup project.
  3. Press Start Debugging (F5 on Windows by default).
  4. Go to http://localhost:61072/swagger.

Alternatively, you can do some requests from the client application and debug their effects on the Web API.

  1. Run docker build -t voclexblazorclient -f ".\BlazorWebAssemblyClient\Dockerfile" .
  2. Run docker run -p "5181:80" voclexblazorclient.
  3. Go to http://localhost:5181/.

(back to top)

Contributing

For now I'm the only author, but contributors are always welcomed and appretiated!

If you have a suggestion that would make this better, please fork the repo and create a pull request. You might want to discuss what you want to do with me before writing any code (see the contacts below). You can also simply open an issue with the tag "enhancement".

(back to top)

License

Distributed under the GPL-3.0 license. See LICENSE for more information.

(back to top)

Contact

Email - [email protected]

LinkedIn - https://www.linkedin.com/in/helgezes/

(back to top)

voclex's People

Contributors

helgezec avatar helgezes avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.