A modern full-stack web application built with Django REST Framework and React, featuring Google Drive integration and JWT authentication. This comprehensive academic platform is designed to support students to track academic activities, access study materials, and stay updated with real -time college notifications.
- Frontend: https://informatsy-1606997742068.web.app
- Django Admin Backend: https://informatsy.pythonanywhere.com/admin/
- API Backend: https://informatsy.pythonanywhere.com/api/
Welcome page showing the main features and navigation
User registration form with email verification
Firebase-powered login page for secure user authentication
Mark the Attendance for the session attended in class/clubs
Browse and download notes, question papers by semester
Django REST Framework browsable API interface
- Overview
- Features
- Technology Stack
- Architecture
- Prerequisites
- Installation
- Configuration
- Usage
- API Documentation
- Development
- Contributing
- License
- Acknowledgments
Informatsy is a comprehensive academic platform designed to help students manage their college activities and academic resources. Built by Jeethendra S R and Pranav V Bharadwaj, enthusiastic students from Government Engineering College, Hassan (GECH), this platform serves as a one-stop solution for accessing study materials, tracking academic activities, and staying updated with college notifications.
The application provides students with essential resources and features that make it easier to track academic activities and receive alerts from their college, ultimately supporting the learning process through organized resource management.
The application features robust authentication, cloud storage integration, and a responsive user interface.
- Academic Resource Management: Access to study materials, notes, and question papers
- Notification System: Real-time updates on college activities and announcements
- Student-Centric Design: Built by students for students with intuitive interface
- Multi-Semester Support: Resources organized by semester and subject
- Contest Information: ICC coding contest details and updates
- 24/7 Accessibility: Access resources anytime, anywhere
- Full-Stack Architecture: Seamless integration between Django backend and React frontend
- Cloud Storage: Google Drive API integration for file management
- Modern Authentication: JWT-based authentication with Django-Allauth
- Responsive Design: Mobile-first approach with modern UI/UX
- RESTful API: Well-structured API endpoints following REST principles
- π Study Materials - Access to notes, question papers, and academic resources
- π Notifications - Real-time updates on college activities and announcements
- π« College Information - Detailed college data and contact information
- π₯ Club Activities - Information about various college clubs and societies
- π ICC Contests - Coding contest details and competition updates
- π Attendance Tracking - Session records and attendance management
- π Firebase Authentication - Secure user authentication system
- π User Registration - Easy signup process for new students
- π Login System - Secure login with email/password
- π€ User Profiles - Personalized user accounts and preferences
- π Password Recovery - Secure password reset functionality
- π§ Email Verification - Account verification via email
- π§ RESTful API - Well-structured Django REST Framework backend
- βοΈ React Frontend - Modern, responsive user interface
- π± Mobile Responsive - Mobile-first responsive layout & also accessible on all devices
- π¨ Modern UI - Clean and intuitive user interface
- π Search & Filter - Easy content discovery
- π₯ Download Support - Direct download of study materials
- π Cross-Platform - Works on web, mobile, and tablet
- π JWT Authentication - Secure token-based authentication
- π Django REST Framework - Robust API development
- βοΈ Google Drive Integration - Cloud file storage and management
- π‘οΈ CORS Support - Cross-origin resource sharing
- π Auto-slug Generation - SEO-friendly URL generation
- π± Social Authentication - Multiple authentication providers
- Firebase Authentication - Firebase Authentication and login
- Framework: Django 3.2.7
- API: Django REST Framework 3.12.4
- Authentication: Django-Allauth 0.45.0, JWT 2.1.0
- Database: SQLite (development), PostgreSQL (production ready)
- Cloud Storage: Google Drive API 2.22.0
- Environment: Python 3.8+, Pipenv
- Framework: React 18+
- Language: JavaScript (ES6+)
- Styling: CSS3, SCSS
- Build Tool: Create React App
- Package Manager: npm
- Version Control: Git
- Environment Management: Pipenv
- CORS: Django-CORS-Headers
- API Testing: Django REST Framework Browsable API
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Informatsy Architecture β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β ββββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββ β
β β React Frontend βββββββββββ€ Django REST API ββββββββββΊβ Google Driveβ β
β β β HTTP β β API β Storage β β
β β - Components β Requestsβ - Authenticationβ Calls β β β
β β - State Mgmt β β - Serializers β β - File Mgmt β β
β β - Routing β β - ViewSets β β - Cloud Syncβ β
β β - API Service β β - Models β β β β
β ββββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββ β
β β β β
β β β β
β β βΌ β
β β ββββββββββββββββββββ β
β β β Database β β
β β β (SQLite/ β β
β ββββββββββββββββββββΊβ PostgreSQL) β β
β JWT Tokens β β β
β β - User Data β β
β β - App Data β β
β β - Sessions β β
β ββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- API-First Design: Backend serves as headless API service
- SPA Architecture: React frontend consumes REST APIs
- Token-Based Auth: JWT authentication for secure API access
- Cloud Integration: External Google Drive API for file management
Before setting up Informatsy, ensure you have the following installed:
- Python: Version 3.8 or higher
- Node.js: Version 14 or higher
- npm: Version 6 or higher
- Git: For version control
- VS Code: Recommended code editor
- Postman: For API testing
- PostgreSQL: For production database
- Operating System: Windows 10+, macOS 10.14+, or Ubuntu 18.04+
- RAM: Minimum 4GB, Recommended 8GB+
- Storage: At least 2GB free space
git clone https://github.com/jeethendra2000/informatsy.git
cd informatsy# Install pipenv if not already installed
pip install pipenv
# Create virtual environment and install dependencies
python -m pip install --upgrade pip
python -m venv venv
# Activate the virtual environment
# Windows:
venv\Scripts\activate
# macOS/Linux:
source venv/bin/activate
# Install Django and other dependencies
pip install -r requirements.txt
# Navigate to the Django project directory
cd informatsy/
# Run migrations
python manage.py migrate
# Create superuser (optional)
python manage.py createsuperuser# Navigate to frontend directory
cd frontend/
# Install npm packages
npm install
# Alternative: Clean install
npm ciCreate a .env file in the project root:
# Django Settings
SECRET_KEY=your-secret-key-here
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1
# Database Configuration (for production)
DATABASE_URL=postgresql://user:password@localhost:5432/informatsy
# Google Drive API
GOOGLE_DRIVE_CLIENT_ID=your-google-client-id
GOOGLE_DRIVE_CLIENT_SECRET=your-google-client-secret
# JWT Settings
JWT_SECRET_KEY=your-jwt-secret-key
JWT_ALGORITHM=HS256- Go to Google Cloud Console
- Create a new project or select existing one
- Enable Google Drive API
- Create credentials (OAuth 2.0)
- Add credentials to your
.envfile
# In the root directory
pipenv shell
cd informatsy/
python manage.py runserverBackend will be available at: http://localhost:8000
# In a new terminal, navigate to frontend directory
cd frontend/
npm run devFrontend will be available at: http://localhost:3000
cd frontend/
npm run build# Collect static files
python manage.py collectstatic
# Run with production server (e.g., Gunicorn)
gunicorn informatsy.wsgi:application- Production:
https://informatsy.pythonanywhere.com/api/ - Local Development:
http://localhost:8000/api/
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/ |
API root - Lists all available endpoints |
| GET | /api/notes/ |
Access study materials and notes |
| GET | /api/questionPapers/ |
Retrieve question papers |
| GET | /api/notifications/ |
Get college notifications and announcements |
| GET | /api/aboutUs/ |
About us information |
| GET | /api/college/ |
College information and details |
| GET | /api/club/ |
Club activities and information |
| GET | /api/SessionRecord/ |
Session records and attendance |
| GET | /api/attendance/ |
Attendance tracking data |
| GET | /api/IccContest/ |
ICC coding contest details |
[
{
"id": 17,
"notificationTitle": "ICC Contest",
"relatedTo": "Coding Contest",
"notificationDescription": "Hey Everyone!\nNew update in ICC section, which list all the contests details"
},
{
"id": 18,
"notificationTitle": "3rd sem and 4th sem notes",
"relatedTo": "Study Material",
"notificationDescription": "Hey!,\nWe have received your request for 3rd and 4th sem notes and question paper.\nwe will upload it soon.\nThank you"
}
][
{
"id": 1,
"college_name": "Government Engineering College, Hassan (GECH)",
"college_code": "NA",
"college_address": "Opposite Dairy Circle, B M Road, Hassan, Karnataka - 573201"
}
]// Fetch notifications
const response = await fetch('https://informatsy.pythonanywhere.com/api/notifications/');
const notifications = await response.json();
console.log('Latest notifications:', notifications);# Format with black
black .
# Lint with flake8
flake8 .
# Type checking with mypy
mypy .# Format with Prettier
npm run format
# Lint with ESLint
npm run lint
# Fix linting issues
npm run lint:fix# Run Django tests
python manage.py test
# Run with coverage
coverage run --source='.' manage.py test
coverage report# Run React tests
npm test
# Run tests with coverage
npm run test:coverage# Create migrations
python manage.py makemigrations
# Apply migrations
python manage.py migrate
# Show migration status
python manage.py showmigrations# Reset database (development only)
python manage.py flush
# Reset migrations
find . -path "*/migrations/*.py" -not -name "__init__.py" -delete
find . -path "*/migrations/*.pyc" -deleteWe welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes
- Add tests for new functionality
- Ensure all tests pass
- Commit your changes:
git commit -m "Add feature" - Push to the branch:
git push origin feature-name - Submit a pull request
- Follow existing code style and conventions
- Write clear, descriptive commit messages
- Add tests for new features
- Update documentation as needed
- Keep pull requests focused and small
- All pull requests require review
- Automated tests must pass
- Code coverage should not decrease
- Documentation must be updated
This project is licensed under the MIT License - see the LICENSE file for details.
- β Commercial use
- β Modification
- β Distribution
- β Private use
- β Liability
- β Warranty
- Django Team - For the excellent web framework
- React Team - For the powerful frontend library
- Google - For the Drive API integration
- Open Source Community - For the amazing tools and libraries
- Django - High-level Python web framework
- React - JavaScript library for building user interfaces
- Django REST Framework - Powerful toolkit for building Web APIs
- Google Drive API - Cloud storage for academic resources
- PythonAnywhere - Backend hosting platform
- Firebase Hosting - Frontend deployment
- Phone: +91 7676373298 / +91 6363255811
- Email: informatsy@gmail.com, jeethendrajeethu8@gmail.com
- College: Government Engineering College, Hassan (GECH)
- Address: Opposite Dairy Circle, B M Road, Hassan, Karnataka - 573201
- @jeethendra2000 - Project Creator & Maintainer
- @pranav-bharadwaj - Project Partner