EasyStore API

An API that offers a straightforward and efficient backend storage solution.
Description
Issues / PRs
Team Members
Project Description

In today's digital age, managing user authentication, secure file storage, and API key management can be challenging for developers building web applications. This project aims to solve these problems by providing a secure and efficient system that handles user authentication, file uploads, and API key management within a Flask web application.

Project Overview

This project is a Flask web application designed to offer a comprehensive solution for user authentication, secure file uploads, and API key management. The application leverages Flask extensions like Flask-Login for user session management, Flask-SQLAlchemy for database interactions, and Werkzeug for security. Additionally, the project incorporates a mechanism to handle API key generation and validation, ensuring secure access to API endpoints.

How It Works

1. User Authentication:

- Users can register and log in using a username and password.

- Passwords are hashed using generate_password_hash for secure storage.

- Logged-in users can generate and manage their API keys.

2. API Key Management:

- Users can generate API keys with a description.

- API keys are stored in the database and can be activated or deactivated by the user.

- API keys are required for accessing certain endpoints, ensuring secure access.

3. File Uploads:

- Authenticated users can upload files to the server.

- Only files with allowed extensions (txt, pdf, png, jpg, jpeg, gif) can be uploaded.

- Uploaded files are securely saved in a designated upload folder, with their paths stored in the database.

#### Project Timeline

Initial Stage:

- Conceptualization: Identified the need for secure user authentication, file storage, and API key management in web applications.

- Planning: Outlined the project requirements, technology stack, and initial features.

Development Stage:

- Setup: Initialized the Flask application and configured Flask extensions (Flask-Login, Flask-SQLAlchemy).

- User Authentication: Implemented user registration and login functionalities with secure password hashing.

- API Key Management: Developed the API key generation, storage, and validation mechanisms.

- File Uploads: Added file upload functionality with validation for allowed file types.

Current Stage:

- Testing: Conducted testing of all implemented features to ensure they work as expected.

- Deployment: Preparing the application for deployment, including setting up the environment and database configuration.

#### Progress and Current Status

- Initial Stage: Successfully set up the basic structure of the Flask application and implemented initial features.

- Current Stage: The application is fully functional with user authentication, API key management, and file upload capabilities. It is undergoing final testing and preparation for deployment.

#### Challenges and Solutions

- Challenge: Ensuring secure storage and management of user passwords and API keys.

- Solution: Utilized generate_password_hash for password hashing and stored API keys securely in the database with active status management.

- Challenge: Handling file uploads securely while validating file types.

- Solution: Implemented file validation to allow only certain file types and used secure_filename to prevent file name issues.

Issues, PRs and Discussions
Hilal Ahmad
Hilal Ahmad
hilal_ahmad
Harshit Saini
Harshit Saini
harshit_saini
Diti Vasisht
Diti Vasisht
diti_vasisht
Tushar  Soni
Tushar Soni
tushar__soni
ANSH CHAUHAN
ANSH CHAUHAN
ansh_chauhan