NoteDown

Markdown note-taking app using React.js and Python.

GPL-3.0 License

Stars
0

Table of Contents


Requirements

  • Node.js >= 11.9.0
  • Python >= 3.7

Local installation

Clone 👯

Clone this repo to your local machine using git clone https://github.com/yeyeto2788/NoteDown

Setup 🧰

  • Install Python requirements. 💻

    cd ./NoteDown/python_api
    pip install -r requirements
    
  • Install Nodejs requirements :electron:

    cd ../react_app
    npm install
    npm run build
    npm run postbuild
    
  • Serve the application using python 🐍

    cd ..
    cd ./python_api
    python run.py
    

Docker installation

  • Build the images 💿

    docker build --tag notedown_fe_image -f ./deployment/notedown_fe.dockerfile .
    docker build --tag notedown_api_image -f ./deployment/notedown_api.dockerfile --build-args NOTEDOWN_DB_URL=<url_of_your_db> .
    

    For database URL on the API you need to follow the syntax described here.

  • Run the container 📦

    docker run -p 80:3000 -d --name notedown-fe notedown_app_image
    docker run -p 8080:8080 -d --name notedown-api notedown_api_image
    
  • Inspect the container 🔍

    docker exec -it notedown-app /bin/bash
    

docker-compose installation

  • Execute this one and only command from the root directory of this repository.
docker-compose --file ./deployment/docker-compose.yml up --force-recreate --build

Features ✨

  • Markdown syntax for the notes. 📑
  • JWT for authentication 🔒
  • Print your notes. 🖨️ (Not yet implemented 😟)

FAQ 🙋‍♀️🙋‍♂️

No frequently asked question yet. 😐


Support 🧑‍🔧

Reach out to me at one of the following places!


ToDo list

  • API
    • Require tokens on all endpoints except for the login and the register ones. ✔️
    • Move logic into controllers separate. ✔️
    • Add logout endpoint.
    • Create a token blacklist. ✔️
    • Create test for the logic on the controllers and/or utils module.
    • Adopt PostgreSQL as the main database ✔️ and maybe have SQLite as backup?
    • Create a readiness/liveness endpoint for CD pipeline and/or FE calls on login/register screen.
  • FE
    • Create the login component. ✔️
    • Use token for request. ✔️
    • Login/Register screen. ✔️
    • Authenticate users. ✔️
    • Add logout call to the API. ✔️
    • Better refresh on NoteList component.
      • Add note.
      • Edit note.
    • Create tests for the components.
    • Add logo ✔️ and icon on the page.✔️
    • Generate a common error page component that could be reusable for any error that might occur while using the application.
    • Print option for the note.
  • Deployment
    • Finalize Dockerfile ✔️ and/or move it to docker-compose.yml so every component can be deployed separately (DB, FE, BE) ✔️.
    • Create some tools that might help on deployment and CI/CD pipelines.
    • Add SSL support.
  • General
    • Generate simple logo for the application. ✔️
    • Gather some screenshots.
    • Improve this README. ✔️.
    • Move all todo items into issues with labels.

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/super_awesome_feature)
  3. Commit your Changes (git commit -m 'Add some awesome feature')
  4. Push to the Branch (git push origin feature/super_awesome_feature)
  5. Open a Pull Request

License

See LICENSE for more information.

Related Projects