Timelapse Web App
A full web application developed with PHP and HTML5 to manage the work time of the participants in a single project.
You can see a demo of the application here:
|User: user - Pass: user|
Just login and save your everyday work progress ;)
- Authorization system with admin and basic roles
- Dashboard with the overall timing of all users of the project
- Simple work time storage (Each user only have to select a day of work and a number of hours)
- Single Page Application (SPA) design to improve the performance
- API system to communicate with the server
- Automatic avatar based on username or Gravatar image linked with the user email
- Add/Edit/Remove/Deactivate users directly from the website (Only admin role)
- Users can customize his profiles and change the access password
- System log of all events updating data in the database (Only admin role)
- Simple database storage in independent files with autogeneration
Download or clone this repository into your web server folder.
# git clone https://github.com/necrotxilok/timelapse.git
First time you log into the application you can use the user 'admin' and the pass 'admin'.
All the project code is designed with the simplest methods and structures to easy implement new features or change the existing features.
The database is fully managed from php using SQLite 3. This allows you deploy your application in a simple server without configuring any database engine. All data files are stored in:
If any of this files are removed the application will regenerate the file next time it have to store some data.
The tables and the fields are configured using a php array in the next file:
To add default data into the tables in the database file creation we can use this file:
If we need to limit the information obtained from a table with a specific role we can use the file:
To add calculated information from data we can use the file:
The API is implemented under a basic file structure under core/api folder. Each folder into it represents a module in the application associated with a database file with the same name. Each php file into the module folder represents an action over that module (Login, get a list of users, update the timing in a day, etc). Then we can connect to the server API using this pattern:
Which corresponds with the file:
With DEBUG param activated each API call returns the SQL executed in the server. If we don't want to show this information to users we must disable this option.
/* core/config.php */ define('DEBUG', 0);
If you need to install the application for multiple projects under the same domain you can change the name of the application to generate a new Cookie for each site:
/* core/config.php */ define('APPNAME', 'NewProjectName');
You can also modify the styles of the entire application easily to fit with your project.
The application was developed using a combination of the latest web technologies: php 7, SQLite 3, HTML5, UIKit 3 and jQuery.
Support this project
If you like this project share it or invite me to a beer here
Developed by necro_txilok - 2018