Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New project structure #38

Merged
merged 2 commits into from
Oct 19, 2024
Merged

New project structure #38

merged 2 commits into from
Oct 19, 2024

Conversation

HomerusJa
Copy link
Contributor

@HomerusJa HomerusJa commented Oct 19, 2024

This pull request contains the project structure needed for the new architecture discussed in #31

General Changes

  • Introduce seperation of frontend and backend
  • Introduce Docker (files still empty)
  • Created docs section which outlines the targeted architecture and design decisions made

Frontend Changes

I didnt touch the frontend as this is not my area of expertise.

Backend Changes

Switch to uv as a package manager

I switched from Poetry to uv as a package manager, as it is the current best solution. Following a comparison between uv and poetry:

Benefits of uv

  • Speed: Faster installation and resolution due to Rust implementation.
  • Simplicity: Easy transition from pip with a straightforward interface.
  • Unified Tooling: Combines multiple tasks into one tool.

Drawbacks of uv

  • Limited Features: Lacks some advanced features found in poetry.
  • Maturity: Newer tool with potentially less stability and documentation.
  • Compatibility Issues: May require adjustments for existing poetry projects.

Benefits of Poetry

  • Comprehensive Management: Excellent dependency resolution and handling.
  • Native Dependency Support: Better for projects needing compiled modules.
  • Established Ecosystem: Strong community support and extensive documentation.

Drawbacks of Poetry

  • Performance Overhead: Slower than uv in some cases.
  • Complexity: More features can lead to unnecessary complexity for simple projects.

Add Ruff for linting

I added Ruff and some basic ruff config as a python linter as it is the commonly agreed best linter currently available. Some reasons on why to use Ruff:

  • Speed: 10-100x faster than traditional linters.
  • Consolidation: Replaces multiple tools (e.g., Flake8, isort) in one package.
  • Feature Parity: Offers a wide range of checks for style and security.
  • Configurability: Easy setup via pyproject.toml.
  • Community Adoption: Increasingly used by popular projects like FastAPI or pandas.

Github Action Changes

  • Put all autocomments in one action autocomment-on-events.yml to clean up the action directory
  • Added Ruff formatting
  • Added pytest testing

Todos

I think those can be put in different issues and handled seperately. This list is not comprehensive.

  • Fill the .gitignore
  • Update the CONTRIBUTING.md and the README.md
  • Create the Docker deployments
  • Finish documenting the architecture
  • Add the frontend structure
  • Implement the frontend
  • Implement the backend

Copy link

Thank you for submitting your pull request! 🙌 We'll review it as soon as possible. In the meantime, please ensure that your changes align with our CONTRIBUTING.md. If there are any specific instructions or feedback regarding your PR, we'll provide them here. Thanks again for your contribution! 😊

@HomerusJa
Copy link
Contributor Author

Also added the logos as in the repository.

@HomerusJa
Copy link
Contributor Author

@dmotts @swarupn17 @shawaiz-khan @Brijeshthummar02 @team What do you think about these changes?

@dmotts
Copy link
Owner

dmotts commented Oct 19, 2024

@HomerusJa Tremendous work 👏! I'll merge your work and we'll try to get a demo up as soon as possible.

@dmotts dmotts self-requested a review October 19, 2024 14:58
@dmotts dmotts added enhancement New feature or request assigned The issue is being worked on hacktoberfest hacktoberfest-accepted labels Oct 19, 2024
@dmotts dmotts self-assigned this Oct 19, 2024
@dmotts
Copy link
Owner

dmotts commented Oct 19, 2024

@HomerusJa could you add '.idea' to the .gitignore file? I don't feel comfortable merging, just incase there's an API key somewhere exposed in the code. Thank you for understanding!🙂

@HomerusJa
Copy link
Contributor Author

I can do that, however, the .idea folder only contains IDE-specific settings and there is no risk at all of submitting API keys. If you dont want to have any IDE settings in this repository, we should communicate that clearly.

@dmotts dmotts merged commit b60cbc1 into dmotts:main Oct 19, 2024
@HomerusJa
Copy link
Contributor Author

Ima create issues for the different tasks mentioned above.

@Brijeshthummar02
Copy link
Contributor

@HomerusJa that would be easy to assist.

@HomerusJa
Copy link
Contributor Author

Can you start from the bottom?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
assigned The issue is being worked on enhancement New feature or request hacktoberfest hacktoberfest-accepted
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants