A website that helps you learn IUPAC naming, designed for everyone.
- Click on the link.
- Enter your name and password, the website will automatically log you in.
- Click the
NEW GAME
button. Choose the difficulty. - A random organic compound will be generated. Enter the IUPAC name of the compound. Submit by pressing
Enter
. - Click
Next
to continue. If you get it right, your score will be increased. If you get it wrong, you will be redirected to the result page. - Compete with your friends and see who can get the highest score!
- It may take some time to load the compound, please be patient. Report to us if the compound cannot be loaded.
- Difference between easy and hard difficulty:
- Easy difficulty includes:
- alkane functional group
- alkene functional group
- hydroxyl functional group
- carboxyl functional group
- at most 3 substituent
- cyclic property
- Hard difficulty includes:
- alkane functional group (would not stand alone)
- alkene functional group (would not stand alone)
- aldehyde functional group
- ketone functional group
- amide functional group
- amine functional group
- at most 2 substituent
- Easy difficulty includes:
- The scoreboard database is subject to change before official release. Please do not be surprised if you cannot find your name on the scoreboard one day.
- Raise an issue if you have found any bugs or want to suggest a new feature.
Please do NOT attempt to cheat. Cheating deprives you of the opportunity to learn and understand IUPAC naming, which is the goal of this game. Let's play fair and have fun!
- Flask: A lightweight WSGI web application framework in Python, used for developing web applications.
- Jinja: A template engine for Python, used in Flask for rendering dynamic HTML templates.
- RDKit: A collection of cheminformatics tools for molecular modeling, representation, and computation.
- PubChemPy: A Python library for interacting with the PubChem chemical database
- Prisma: An experimental Object Relational Mapping (ORM) system with Python support, used for managing database interactions.
- PostgreSQL: A robust, open-source object-relational database system, compatible with Prisma for database management.
- Ms. Cheung for teaching me chemistry (although I'm not good at it).
- My friend Jay for hosting the website with his server.
- Coolify for the cloud service.
- UIverse for the wonderful UI designs.
- ChatGPT for resolving some of my questions.
- 24/11/2024: Demo release
- 25/11/2024: Alpha v1 version release
- Secure data transmission
- Add scoreboard page
- Set up database to store users' password and maximum scores
- Improve UI designs
- 26/11/2024: Alpha v2 version release
- Bug fix
- 27/11/2024: Beta v1 release
- Bug fix
- Improve user experience
- Redesign the algorithm for generating organic compounds
- 29/11/2024: Beta v2 release
- Vulnerability fix to prevent cheating
- Update database schema to include created_at and updated_at column
- Add "Save & Exit" button to the game page
- 18/12/2024: Beta v3 release
- Remove Submit button and "Save & Exit" buttons for simplicity
- Add auto focus on username and password input fields
- Add difficulty selection page but hard difficulty has not been implemented yet
- 22/12/2024: Beta v4 release
- Implement hard difficulty (Beta)
- 23/12/2023: Beta v5 release
- Update algorithm for hard difficulty to:
- add alkene group
- avoid invalid and out-syl compounds
- Update algorithm for hard difficulty to: