Achievements Hill is a full-stack web application that enables users to create and share their achievements. Built using Flask and Cloudinary for media storage.
- Features
- Tech Stack
- Installation
- Configuration
- Usage
- Screenshots
- Contributing
- Future Plans
- License
- Contact
- User Authentication: Secure sign-up and login functionality.
- Profile Management: Users can create and edit personal profiles.
- Achievement Creation: Add new achievements with titles, descriptions, and images.
- Achievement Sharing: Share achievements with others via unique links.
- Cloudinary Storage: Store and manage images efficiently using Cloudinary.
- Responsive Design: Optimized for various devices, including desktops and mobile devices.
- Frontend: HTML, CSS, JavaScript
- Backend: Flask
- Database: Firebase Realtime Database
- Authentication: Firebase Authentication
- Storage: Cloudinary (Replacing Firebase Storage)
To set up the project locally, follow these steps:
-
Clone the Repository:
git clone https://github.com/v9dev/achievementshill.git cd achievementshill -
Create a Virtual Environment:
python3 -m venv venv source venv/bin/activate # On Windows, use 'venv\Scripts\activate'
-
Install Dependencies:
pip install -r requirements.txt
-
Set Up Firebase Authentication & Database: Create a
.envfile in the project root directory and add your Firebase configuration details:FIREBASE_API_KEY='Your Api Key' FIREBASE_AUTH_DOMAIN='Your Auth Domain' FIREBASE_DATABASE_URL='Your Database URL' FIREBASE_PROJECT_ID='Your Project ID' FIREBASE_MESSAGING_ID='Your Messaging ID' FIREBASE_APP_ID='Your App ID' FIREBASE_MEASUREMENT_ID='Your Measurement ID'
-
Set Up Cloudinary for Media Storage: Sign up at Cloudinary and get your API credentials. Then, add the following to your
.envfile:CLOUDINARY_CLOUD_NAME='your_cloud_name' CLOUDINARY_API_KEY='your_api_key' CLOUDINARY_API_SECRET='your_api_secret'
-
Run Database Migrations:
python migration.py
-
Run the Application:
flask run
-
Access the Application: Open your web browser and navigate to
http://127.0.0.1:5000/. -
Upload Images to Cloudinary:
- When adding an achievement, images will be uploaded to Cloudinary instead of Firebase Storage.
- Ensure your Cloudinary API credentials are correctly set in the
.envfile.
Contributions are welcome! Please follow these steps:
-
Fork the Repository:
- Click the "Fork" button at the top right corner of this page.
-
Clone Your Fork:
git clone https://github.com/your-username/achievementshill.git cd achievementshill -
Create a New Branch:
git checkout -b feature/your-feature-name
-
Make Your Changes:
- Implement your feature or fix.
-
Commit Your Changes:
git add . git commit -m "Add feature: your feature name"
-
Push to Your Fork:
git push origin feature/your-feature-name
-
Create a Pull Request:
- Navigate to the original repository and click on "Pull Requests".
- Click "New Pull Request" and select your branch.
We have several exciting features planned for future updates:
- Filters: Improve searching and filtering of achievements.
- Discussion Groups: Create groups where users can discuss achievements.
- Friends System: Add a feature to connect and interact with friends.
- Voting System: Allow users to vote on achievements.
- Achievement Badges: Introduce badge rewards for user achievements.
- New UI Elements: Enhance the user interface with a modern design.
- Modular Flask Architecture: Refactor the codebase using Flask Blueprints.
- Cloud Deployment:
- Utilize Docker for containerization.
- Implement AWS services for scalable hosting.
- Integrate GitHub Actions for automated CI/CD workflows.
- Additional Features: More enhancements and functionalities to be added in the future!
⭐ Star this repository to stay updated on upcoming features!
This project is licensed under the MIT License. See the LICENSE file for details.
For questions or suggestions, please open an issue in this repository.