Skip to content

A dynamic platform for writers to hone their craft, get real-time feedback, and connect with a community of storytellers. Dive into interactive lessons, manage your writings, and unleash your creativity.

License

Notifications You must be signed in to change notification settings

romen2232/scribly

Repository files navigation

Scribly Logo

Scribly!

Unleash Your Writing Creativity πŸ–‹οΈ
Report a bug Β· Request a feature

Table of Contents πŸ“Œ

About Scribly! πŸ“˜

Scribly is a cutting-edge web application designed to help budding writers and seasoned authors alike to hone their creative writing skills. Whether you're looking to improve your storytelling, develop unique characters, play with the metrics, or simply find inspiration, Scribly has got you covered.

Scribly Screenshot
Sample screenshot of Scribly in action.

Features 🌟

  • Folder Management System: Organize your notes, drafts, and final pieces with ease.
  • Create & Analyze Notes: Jot down your thoughts and let Scribly provide feedback to enhance your writing.
  • Social Functionalities: Connect with fellow writers, share your work, and get feedback.
  • Diverse Lessons: From basics to advanced topics, learn the art of creative writing at your own pace.
  • Badges & Achievements: Stay motivated with badges that mark your progress and achievements.
  • ... and much more!

Language Support 🌍

Currently, Scribly is available exclusively in Spanish. However, we're eager to make Scribly accessible to a wider audience. If you're proficient in Spanish and another language, and would like to help with the translation, we'd be thrilled to collaborate! Please reach out to us at scribly@gmail.com to discuss how you can contribute.

Getting Started πŸš€

There are two main ways to dive into the world of Scribly:

1. Online Experience:

  • Sign Up: Create your Scribly account here.
  • Dive into Lessons: Start with beginner lessons or jump straight into advanced topics.
  • Write & Analyze: Use Scribly's intuitive editor to draft your stories and get instant feedback.
  • Connect: Join the community, share your work, and collaborate with fellow writers.

2. Local Installation:

For those who love to tinker with code, you can set up Scribly locally and make it your own!

  • Clone the Repository: git clone https://github.com/romen2232/scribly
  • Install Dependencies: Coming soon is an `install.sh`` script that will automate all initial setup commands. In the meantime, you can:

Backend

  • Navigate to the backend directory:

    cd ./backend
  • Create a virtual environment:

    python3 -m venv venv
  • Activate the virtual environment:

    source venv/bin/activate
  • Create an .env file:

    python3 contrib/env_gen.py
  • Install RabbitMQ:

    docker run -d --hostname rmq --name rabbitmq-server -p 8080:15672 -p 5672:5672 rabbitmq:3-management
  • Install dependencies:

    pip install -r requirements.txt
  • Celery Worker Command:

    celery -A scribly_api worker -l info -P eventlet

    Create migrations:

    ./migrations.sh

Frontend

  • Navigate to the frontend directory:

    cd ./frontend
  • Setup TailwindCSS:

    npx tailwindcss -i ./src/assets/styles/tailwind.css -o ./dist/main.css --watch
  • Start the development server:

    npm run dev

Status 🚧

Current Version: 0.9.0 Last Updated: September 13, 2023

We're on the brink of releasing Scribly 1.0! Here's a brief overview of what's left to tackle:

Fixes:

  • UI & Design: Improvements in responsiveness, UI transitions, toast notifications, lesson icons, and overall design.
  • Authentication: Issues with account activation, double login, email functionalities, and other related auth requirements.
  • User Experience: Enhancements in lesson progress, user configurations, followers/following system, and badges.
  • Backend: Refinements in backend language, image serving, and other backend-related functionalities.
  • Miscellaneous: Various fixes in posts, ratings, loading, lessons, and documentation.

Features to Add:

  • Landing page
  • Resend mail functionality
  • Forgot password feature
  • A getStarted.sh script
  • Testing

This summary provides a high-level overview of the tasks left for version 1.0. For detailed information on each task, check the project

Stay tunned for the 1.0 release.

Folder Structure πŸ“‚

Scribly's codebase is organized in a structured manner to ensure ease of navigation and maintainability. Here's a brief overview of the main directories and their purposes:

scribly/
β”‚
β”œβ”€β”€ backend/                 # Backend source code directory
β”‚   β”œβ”€β”€ module/              # Entity module for all the MVT related operations
β”‚   β”‚   └── migrations/      # Database migrations for the entity
β”‚   β”œβ”€β”€ ...                  # (Similar structure for other modules)
β”‚   β”œβ”€β”€ frontend/            # Frontend source code directory
β”‚   β”‚   β”œβ”€β”€ public/          # Publicly accessible files
β”‚   β”‚   β”‚   └── img/         # Public images
β”‚   β”‚   └── src/             # Main source code for frontend
β”‚   β”‚       β”œβ”€β”€ app/                  # Core application setup and bootstrap logic
β”‚   β”‚       β”œβ”€β”€ assets/               # Static assets utilized across the application
β”‚   β”‚       β”œβ”€β”€ components/           # Reusable UI components, organized by functionality
β”‚   β”‚       β”œβ”€β”€ hoc/                  # Higher-Order Components enhancing base components
β”‚   β”‚       β”œβ”€β”€ hooks/                # Custom React hooks for various functionalities
β”‚   β”‚       β”œβ”€β”€ i18n/                 # Internationalization setup and language files
β”‚   β”‚       β”œβ”€β”€ pages/                # Components representing entire pages or views
β”‚   β”‚       β”œβ”€β”€ services/             # Services for external API calls and data management
β”‚   β”‚       β”œβ”€β”€ stores/               # State management using zustand
β”‚   β”‚       └── utils/                # Utility functions and helpers used across the app
β”‚   └── scribly_api/         # Main API module for Scribly
└── docs/                    # Documentation directory

Tech Stack πŸ› οΈ

Scribly is built using a combination of powerful technologies. Here's a breakdown of the primary tools and frameworks that power our platform:

Backend:

  • Django: A high-level Python web framework that encourages rapid design and a clean, pragmatic design.
  • Django Rest Framework: A powerful and flexible toolkit for building Web APIs.
  • Celery: An asynchronous task queue/job queue based on distributed message passing.
  • RabbitMQ: Our chosen message broker, ensuring that our task queue runs smoothly.
  • PostgreSQL: A powerful, open-source object-relational database system.
  • ChatGPT API: Leveraging OpenAI's powerful language model to enhance our chat functionalities and provide real-time writing feedback.

Frontend:

  • React: A JavaScript library for building user interfaces.
  • TailwindCSS: A utility-first CSS framework for rapidly building custom user interfaces.
  • Zustand: A small, fast, and scaleable bearbones state-management solution.
  • i18n: An internationalization-framework written in and for JavaScript.

DevOps & Deployment:

  • Docker: Empowering our application to run consistently across different environments.
  • GitHub Actions: Automating our workflows, from testing to deployment.
  • Nginx: Acting as a reverse proxy to direct web traffic.

Other Tools:

  • Git: For distributed version control.
  • VS Code: Our preferred code editor, equipped with a suite of powerful extensions.

Contributing 🀝

For contributions, check our contribution guidelines. It includes instructions on how to open issues, coding standards, and development notes.

We welcome contributions! If you find a bug or have a feature request, please open an issue. If you'd like to contribute code, please fork the repository and submit a pull request.

Creator ✨

Scribly is the result of dedication, passion, and countless hours of work by:

Romen Medina BeltrΓ‘n

  • Role: Developer, Designer, & Visionary
  • About: With a passion for both technology and storytelling, Romen envisioned a platform where writers could hone their skills and connect with others.
  • Contact: Email | LinkedIn

Special Thanks πŸ™

A journey to innovation is seldom traveled alone. Along the path, we've had the pleasure of crossing with visionary entities that recognize and nurture potential. Among them, a special nod of gratitude goes to Aircury SL. Their initiative "Summer of Code" is not merely a program; it's a testament to their commitment to fostering talent and innovation, especially in sectors that touch the very essence of our society, such as education. While Scribly stands as a beacon for interactive learning, the winds beneath its wings were, in many ways, provided by the trust and opportunity rendered by Aircury.

Beyond organizations, there are special individuals whose personal touch, guidance, and unwavering support have been instrumental in shaping Scribly's journey:

  • Sergi Heras: A special shoutout to Sergi for being an incredible mentor throughout this journey. Your guidance, patience, and expertise were invaluable.

  • German Amian: Thank you, German, for being a pillar of support throughout the project. Your encouragement and insights made a world of difference.

Copyright and License πŸ“„

Code and documentation Β© 2023 Romen Medina BeltrΓ‘n. Code released under the MIT License.


Keep writing and enjoy πŸ–‹οΈ

About

A dynamic platform for writers to hone their craft, get real-time feedback, and connect with a community of storytellers. Dive into interactive lessons, manage your writings, and unleash your creativity.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks