Giter Site home page Giter Site logo

getraid / japaneselearninglogpy Goto Github PK

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

A simple webtool to track the daily learning progress you've made

Dockerfile 1.29% JavaScript 4.34% CSS 15.49% HTML 1.30% Vue 56.21% Python 20.32% Batchfile 0.52% Shell 0.53%
python javascript vue

japaneselearninglogpy's Introduction

Japanese Learning Log Py

screenshot that shows the webpage

A tool that helps you to log / track your invested time in learning japanese, or anything really. You can use it as your daily learning diary!

Required / Programmed with: Python 3.9, Node v12 Updated to work with Python 3.11, Node v18.13

Older versions? If you want use older python/node versions, look into the installAndBuild.sh/bat files and use the commented segments instead

Setup

Docker

You can use docker to automatically deploy this webapp. Just install Docker and git to your server / machine and clone the repository: git clone https://github.com/getraid/JapaneseLearningLogPy.git.

After that you can use docker build -t japaneselog . to create a local image. Then you have the option to run it "Simple" or "with folder bindings", so that you can access the DB and config easily.

Simple Container: docker run -d -it --name JLL -p 5000:5000 japaneselog:latest
Now visit the website on your defined port (http://localhost:5000/ in this case).

Folder Bindings? or Container with folder bindings:
docker run -d -it --name JLL -p 5000:5000 -v ./localConfDir:/app/config -v ./localDBDir:/app/database  japaneselog:latest  

Here localConfDir and localDBDir are a local folder that you have to create. The sqlite database gets redirected in there and the config.ini can beprovided there as well.

Manual Installation

Clone the repository to your server with git clone https://github.com/getraid/JapaneseLearningLogPy.git Install all dependencies: pip3 install -r requirements.txt

Build depedencies: execute the installAndBuild.bat(Windows) or ./installAndBuild.sh(macOS or Linux in Terminal) to build the frontend Start: python3 start.py

To run this in the background on a Linux server, please look into services.

Settings

This server application has all its settings "baked in", but you can simply override them. If you want to that, copy config.ini.sample to config.ini and edit them.

Settings explaination

port - The port of this server application. Make sure to allow it in your firewall.

host - Can be 127.0.0.1 for localhost only, 0.0.0.0 for all network interfaces or an individual ip-adress

usePassword - This enables a basic http-authentication with the username/password below. Please don't run this publicly without https. If you want to run this with https, fork and modify the code or simply use caddy with a reverse proxy. This was/is primary meant for "indoor"-use

user - the user account name (only one)

unlock_password - the user password (only one)

Usage

Now open your webbrowser at your defined host:port in the settings (default: http://localhost:5000/).

Navigation

Left Side (Date Section):

  • βž• Add current date
  • πŸ–ŠοΈ Add other dates
  • ❌ Remove dates
  • β¬…οΈβž‘οΈChange date range
  • πŸ‘† Select date

Right Side (Entry Section):

Upper Space:
  • βž• Add section for selected date
  • πŸ‘† Select entry
Lower Space:
  • πŸ“„ Learn Method: create or select a learn method
  • ⌚ Hour, Minutes: Set your invested time
  • πŸ’¬ Comment: Anything you want to add!

Development

To work on the gui check out JapaneseLearningLogFrontend. Before that, you should disable the usePassword option in the config.ini file.

In order to debug, you just start this python server and run it in the background. Then move into the JapaneseLearningLogFrontend folder and run npm install && npm run serve there. The actual UI testing will be easier this way. Once you're done, simply run npm run build in the JapaneseLearningLogFrontend directory and it will output its contents into the static folder here. Now you can just navigate to your defined host:port address of the regular server.

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.