main
Frostiq's BakeryBackend is a FastAPI-based backend service for managing user favorites in a bakery application. It supports adding, listing, and deleting favorite items for users, with robust validation and access control.
- Add, list, and delete user favorites
- Duplicate detection to prevent redundant entries
- Input validation for item names
- Resource-level authorization for deletion
- SQLite database (file always stored in
BakeryBackend/) - Ready for unit/integration testing with pytest
- Clone the repository:
git clone <your-repo-url> cd frostiq
- Install dependencies:
pip install -r requirements.txt
- Run the application:
The API will be available at http://127.0.0.1:8000
uvicorn BakeryBackend.main:app --reload
- Ensure pytest is installed:
pip install pytest
- Run the tests:
pytest BakeryBackend/routers/test_favorites.py
frostiq/
├── BakeryBackend/
│ ├── database.py
│ ├── main.py
│ ├── models.py
│ ├── routers/
│ │ ├── favorites.py
│ │ └── test_favorites.py
│ ├── schemas.py
│ └── favorites.db
├── requirements.txt
└── README.md
POST /favorites/— Add a favoriteGET /favorites/{user_id}— List favorites for a userDELETE /favorites/{favorite_id}?user_id=...— Delete a favorite (only by owner)
- The database file is always created in the
BakeryBackenddirectory for consistency. - The codebase is structured for easy extension and testing.
A collection of collaborative projects featuring various web applications and platforms.
FrostIQ is a monorepo containing multiple independent projects:
-
BakeryBackend - Backend services for bakery management system
- GitHub: RoshanAli339/BakeryBackend
-
Bakery Frontend - User interface for the bakery management system
- GitHub: ashanmukhasairam/bakery
-
Hackmela - Platform for hackathon events
- GitHub: indra7777/Hackmela
-
Torto-Forto - Web application project
- GitHub: kvnrajasekhar/torto-forto
- Git
- Node.js (v14 or higher) - for most subprojects
- Python (if any subproject requires it)
- Docker (optional, for containerized deployment)
-
Clone the repository with submodules
git clone --recurse-submodules https://github.com/yourusername/frostiq.git cd frostiqIf you've already cloned without submodules:
git submodule update --init --recursive
-
Set up individual projects Each subproject is independent and has its own setup instructions. Navigate to each project's directory and follow their respective README files:
# Example for BakeryBackend cd BakeryBackend # Follow README instructions in that directory # Similarly for other projects cd ../bakery # Follow README instructions
Each subproject has its own setup and running instructions. Please refer to their respective README files for the most accurate information. Here's a general overview:
cd BakeryBackend
# Check the project's README for specific setup instructions
# Typically involves installing dependencies and starting the server
# Example (may vary):
# npm install
# npm startcd bakery
# Check the project's README for specific setup instructions
# Typically involves installing dependencies and starting the development server
# Example (may vary):
# npm install
# npm run devNavigate to each directory and follow their respective README files for specific instructions.
Each subproject may use different technologies. Here are the main technologies used across the projects:
-
BakeryBackend:
- Backend framework (Node.js/Express, Python/Flask, etc.)
- Database (MongoDB, PostgreSQL, etc.)
- API standards (REST/GraphQL)
-
Bakery Frontend:
- Frontend framework (React, Vue, Angular, etc.)
- State management (Redux, Context API, etc.)
- Styling (CSS, SASS, Tailwind, etc.)
-
Hackmela & Torto-Forto:
- Check respective READMEs for specific technologies
Common Tools:
- Git for version control
- npm/yarn for package management
- Docker (if containerization is used)
We welcome contributions to any of the subprojects! Here's how you can contribute:
-
Fork the main repository and clone it with submodules:
git clone --recurse-submodules [email protected]:yourusername/frostiq.git
-
Create a new branch for your feature/fix:
git checkout -b feature/your-feature-name
-
Make your changes in the appropriate subproject directory
-
Commit your changes with a clear message:
git commit -m "feat(subproject): brief description of changes" -
Push your changes and create a Pull Request
Each subproject may have its own contribution guidelines. Please check the CONTRIBUTING.md or README.md in each subproject directory for specific instructions.
- Follow the coding style of each subproject
- Write clear commit messages following conventional commits
- Include relevant documentation updates with your changes
- Add tests for new features when possible
This project is licensed under the MIT License - see the LICENSE file for details.
For any questions or feedback, please open an issue in the repository.
Note: This README is a template. Please update the sections with actual project-specific information. main