Hello there! Welcome to the wonderful world of A.I. art. There is no better place then to buy completely unique computer generated art works to have as mintable NFTs!
A live version can be found here.
This project tries to create a Django application for a NFT store service.
The website is clean and intuitive, making navigation easy.
As a Visitor
- As a Visitor, I want to easily understand the main purpose of the site.
- As a Visitor, I want to be able to view NFTs available before buying one.
- As a Visitor, I want to be able to purchase a NFT.
As a User
- As a User, I want to easily understand the how to navigate through the site.
- As a User, I want to be able to update and edit my profile.
- As a User, I want to search all NFTs on the store.
As a Staff Member
- As a Staff Member, I want to easily understand the how to navigate through the site.
- As a Staff Member, I want to be able to update and edit my profile.
- As a Staff Member, I want to search all NFTs on the store.
- As a Staff Member, I want to edit categories, courses and lessons through the admin panel.
✅ Fully responsive.
✅ Purchase a NFT.
✅ Register a new account and login.
✅ Edit profile.
✅ Staff users can create and edit categories, products.
-
New Account
To access the page the user must first create a new account by clicking on the "Signup" link on the navbar or button on landing page form. Will receive an e-mail verification on creation. -
Login
To access the page the user must use their credentials to login. In the case of this build there is also an option to login as a "Demo User" or "Demo Staff" which allows the user experience the application utilizing a premade account. (refer to testing section) -
Profile
Shows your account information such as username, name, email and pre saved delivery options. -
Edit Profile
Allows the user to close or edit account information such as name, email, password and delivery options. -
NFT Category
NFTs are divided into different categories. -
Mintable NFTs
NFTs that are avalibile for users to purchase and sell else where. Known as 'mintable', which is referred to as avalibile to flip for profits. -
Prints
Prints of such NFTs, not as exclusive as it is made from paper. For site purposes and lack of product fixtures, the developer re-used some of the NFT data to act as prints also, so not as well presented.
The whole UI is made utilizing Bootstrap 4. For further information, please refer to the official documentation here.
Throughout the project, the following technologies were used.
Detailed tests can be found attached to this repo.
For testing purposes these accounts can be used (admin + testerforai). Or feel free to create your own.
- Username: testerforai
- Password: tester123
- Username: admin
- Password: superuserpass
The website is hosted and deployed by Heroku. Everything is deployed from the master branch and updates automatically whenever the branch is updated in GitHub.
- Log in Heroku (or create a new one if you don't have one.);
- Go to your dashboard.
- Click on the "New" -> "Create new app" button located right under the navbar.
- Choose a unique name for your app.
- Choose a region (preferably close to where you are located).
- If everything works fine you should see the overview page of your app.
- Click on Settings tab.
- Reveal Config vars.
- Here we configure the SECRET_KEY, STRIPE_PUBLIC_KEY, STRIPE_SECRET_KEY, DATABASE_URL, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, EMAIL_HOST_USER, EMAIL_HOST_PASS, USE_AWS values (thoose are not public and are the same values on my env.py file(which is also private)).
- Click on deploy tab.
- In the case of this project I chose to conect my app to my repository in GitHub, so it auto updates my heroku app whenever the project is pushed.
- Click on the Deploy Branch button.
- DONE!
If you want to fork the repository to your own GitHub account you can by clicking on the “fork” button under the navbar with your profile.
- If you want to clone the repository into a local file you can by:
- Clicking on the green button “Code” and copying the url showed.
- Open GitBash
- Change directory to the desired location where you want to clone the files to.
- Type “git clone” and paste the copied URL
- Press enter and you should have your local file cloned and ready.
- After opening the folder you should create a new file in the root directory, name it env.py
- In env.py you can set your environment variables.
import os os.environ["SECRET_KEY"] = "<your_value>" os.environ["STRIPE_PUBLIC_KEY"] = "<your_value>" os.environ["STRIPE_SECRET_KEY"] = "<your_value>" os.environ["DATABASE_URL"] = "<your_value>" os.environ["AWS_ACCESS_KEY_ID"] = "<your_value>" os.environ["AWS_SECRET_ACCESS_KEY"] = "<your_value>" os.environ["EMAIL_HOST_USER"] = "<your_value>" os.environ["EMAIL_HOST_PASS"] = "<your_value>" # os.environ["DEVELOPMENT"] = "True" --> uncoment to use DEBUG MODE os.environ["USE_AWS"] = "True" --> set True or False to use AWS S3 Buckets
- All content on the page was improvised by me, following along Code Insititutes' Boutique Ado mini project. So credits go to https://github.com/ckz8780
- The wonderful tutors at C.I. but most importantly Chris Z for the mini project walkthrough.