Skip to main content

A simple help for writers

Project description

My Ghost Writer

A simple helper for writers.

Overview

My Ghost Writer is a web application that analyzes text and provides words frequency statistics. It allows users to upload or type in a text, and then displays the most common words, their frequencies and their position with the text editor. The application uses natural language processing (NLP) techniques to stem words, making it easier to identify patterns and trends in the text.

Features

  • Analyse large texts and provide words frequency statistics
  • Use NLP to stem words for more accurate results
  • Support for uploading or typing in text
  • User-friendly interface with a simple editor and display of word frequencies

Technologies Used

  • Python 3.10+ (FastAPI web framework)
  • a Vanilla JavaScript frontend, playwright for E2E testing
  • nltk library for natural language processing
  • structlog for logging and error handling

Getting Started

In a Linux/WSL environment (I didn't tried with MacOS or Windows):

  1. Clone the repository using git clone https://github.com/trincadev/my_ghost_writer, cd my_ghost_writer

  2. Create a virtualenv and install the project dependencies using an existing python version with

    • poetry (poetry env use 3.12.10, poetry install, eval $(poetry env activate))
    • python -m venv .venv, source .venv/bin/activate, pip install -r requirements.txt (and the other requirements files if you need also the webserver and/or the test environment)
  3. Run the application using:

    • python my_ghost_writer/app.py using the python app.py file path
    • python -m ghost_writer.app.py using the python module

If using the webserver with the module (python -m ghost_writer.app.py) it's necessary one of these env variables:

  • STATIC_FOLDER to define a custom path for the static folder. Probably you should also download the static files:
    • index.html
    • index.js
    • index.css
  • API_MODE to avoid mounting the static folder. This will define only the API endpoints
    • /health
    • /words-frequency

Contributing

Pull requests are welcome! Please make sure to test your changes thoroughly before submitting a pull request.

This project is still in its early stages, and there are many features that can be added to make it more useful for writers.

If you have any suggestions or would like to contribute to the project, please don't hesitate to reach out!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

my_ghost_writer-0.2.0.tar.gz (19.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

my_ghost_writer-0.2.0-py3-none-any.whl (21.7 kB view details)

Uploaded Python 3

File details

Details for the file my_ghost_writer-0.2.0.tar.gz.

File metadata

  • Download URL: my_ghost_writer-0.2.0.tar.gz
  • Upload date:
  • Size: 19.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.12.3 Linux/5.15.167.4-microsoft-standard-WSL2

File hashes

Hashes for my_ghost_writer-0.2.0.tar.gz
Algorithm Hash digest
SHA256 cead81e5b32987ec9b6334e8d6bdc53757b3518652f443d6192af3b0556504dd
MD5 ba026b0bf3a20b3cf91e9ae326111af2
BLAKE2b-256 3b9c1e5dbf9beb8ef313145f6088abdacbdee801abbedb6d5f8f6f366f962aff

See more details on using hashes here.

File details

Details for the file my_ghost_writer-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: my_ghost_writer-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 21.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.12.3 Linux/5.15.167.4-microsoft-standard-WSL2

File hashes

Hashes for my_ghost_writer-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2b190d3903ccfa8ba9756b08081437a5afc98b7cf4910112f50067e4a074a681
MD5 9a32b201d6030df71034ae8f7222f624
BLAKE2b-256 18057732014ff3514037f9b940d68271a877db0208990a644655d76454ad11d5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page