Skip to content
/ BCF Public

The codebase for an open library of perfume components.

License

Notifications You must be signed in to change notification settings

noxlovette/BCF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

95 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

README.md

BCF

This is a web app for perfumers. Users can browse IFRA’s FIG of 3100 perfume compounds, manage their collection of ingredients (what they have in the lab, for example), store, and create perfume formulas. Everything happens in a safe environment, the collection and formula data are encrypted.

Features

  • Browse through IFRA’s database of perfume compounds and contribute to BCF's knowledge base.
  • Manage a personal collection of ingredients and enrich it with subjective data.
  • Create and store perfume formulas that will change the industry.
  • Secure data storage with encryption.

Installation

  1. Clone the repo:
git clone https://github.com/noxlovette/BCF.git
cd BCF
  1. Define the .env file in the backend folder. Ensure it’s not in your version control. Below is an example. DO set up a SENTRY_DSN variable for both .envs.
PGNAME=name
PGUSER=user
PGPASSWORD=pass
PGHOST=host
PGPORT=5432

PRIVATE_KEY_PASSWORD=pass
PRIVATE_KEY=key
PUBLIC_KEY=key

CORS_ALLOW_ALL_ORIGINS=True
CSRF_COOKIE_SECURE=False
SESSION_COOKIE_SECURE=False

DJANGO_SETTINGS_MODULE=main_project.settings
DJANGO_SECRET_KEY=key
DJANGO_DEBUG=True

SENTRY_DSN=''

You may not have to create a key pair, but not doing so will prevent 2/3 of the app from working. I suggest using Python cryptography for this.

  1. .env for the frontend. Docker is configured in such a way as to work with this setup.
VITE_API_URL=http://localhost:8000
VITE_SENTRY_DSN=''
  1. Build and Start the Docker Containers from the root folder:
docker compose up --build

That is pretty much it. Open localhost:5173 and have fun.

Usage

The docker setup lets you hot-swap your frontend src and static folder, and it enables full sync with django. You can just launch your VSCode (with an official svelte plugin) and start work like you always would. Just make sure you have configured the environment.

The reason why a fuller sync with a local frontend is not possible is the fact that rollup, which vite uses, does not install additional dependencies on darwin.

When it comes to the database, you could run migrations in backend and then fill it out with Django ORM or DataGrip.

Built With

Contributing

This is a very new project so feel free to bombard me with how bad this code is.

Versioning

I use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

License

This project is licensed under the GNL License - see the LICENSE.md file for details

Stack

Acknowledgments

  • Absolutely everyone behind my Stack. You do a terrific job. Especially Svelte – Hallo aus Braunschweig!
  • Pavel Durov. Your interview inspired me to continue my full-stack app, embrace open-source, and believe in myself.
  • Theo t3.gg.You showed me what Svelte and TailwindCSS are, explained the core concepts of FrontEnd, and, most importantly, indirectly supported me during the long hours of coding.
  • Fireship – more concepts of programming.